在ARM11嵌入式系统下实时网络通信和LCD显示的实现

2018-02-19来源: 21ic关键字:ARM11  网络通信  LCD显示

    引言
    ARM11主频为533 M,最高可达667 MHz,较ARM7主频提高了10倍,且拥有更丰富的片上资源,处理速度更快,功能更强。基于上述特点,ARM11可完全适应实时性较强的网络终端的设计。
    在以ARM11为核心的网络终端设计中,需要LCD在终端实时显示网络通信的各项参数和设备工作状态,LCD的显示内容依靠网络传输数据中的指令来控制,而网络终端的操作数据也要通过网络传输到计算机,因此网络通信和LCD显示需要很强的实时性才能合理使用计算机和ARM11的资源,从而提高系统的运行效率。
    该文以ARM11处理器S3C6410为平台,基于Linux操作系统设计了一种在ARM11内核直接控制LCD显示的方法,并采用TCP/IP协议设计了一种同时作客户端和服务器的终端工作模式。

    1 ARM11网络终端实时通信特性分析
    1.1 数据流分析
    在计算机与ARM11通信的系统中,计算机的处理速度比ARM11快很多,如将数据处理等工作量大的任务分配给计算机去处理,则可大大减少ARM11的资源消耗,ARM11就可以更快地去响应其他操作,因此为了减少ARM11显示任务的时间,可以将ARM11要显示图片的数据处理交给计算机,计算机按照ARM11显示的数据要求处理好数据后再通过网络传到ARM11再完成LCD的显示。此外,ARM11网络终端还要向计算机传输设备工作状态信息,计算机则还要向网络终端传输一些控制命令。
    1.2 通信协议分析
    网络通信必然涉及到通信协议的问题,目前普遍采用的网络协议有UDP协议和TCP/IP协议。在实时性要求较高的网络通信中希望能做到想发就发,有数据就收。两个协议中UDP比较符合这个要求,但是它不能保证数据传输的有效性,当数据较多时很可能会发生严重的丢包现象,尤其是像LCD显示的图片数据这类数据较大而且传输频繁的数据,可能会严重影响液晶显示这是不能被接受的。相比之下TCP/IP协议能够保证数据传输的有效性。
    在TCP/IP协议ARM11网络终端作为服务器或者客户端是不能做到随时想发就发,有数据就收的,比如作为服务器接收完来自计算机的数据后,如果计算机断开了连接,那么网络终端再想向计算机发送数据,就必须等到计算机再次作为客户端向终端发起连接才行。为了解决TCP/IP协议的这种问题,本文设计了网络终端和计算机既作客户端又作服务器的双线程工作模式,在这种工作模式下终端和计算机随时能发起和断开连接,从而做到随时想发就发,有数据就收。

2 LCD显示的软件设计
2.1 LCD的显示方法分析
    (1)基于Framebuffer驱动方式。在Linux下有完善的Framebuffer驱动程序,所以可以利用ARM11集成的LCD控制器采用Framebuffer控制LCD,Framebuffer是显示设备抽象为帧缓冲区,用户通过内存映射将其映射到进程地址空间之后,就可以直接进行读写操作,而操作可以直接反应到屏幕上。该方法反应速度快、执行效率高,应用程序简单,但是底层硬件驱动复杂,硬件变更后编写难度大,不易实现。不带控制器的LCD通常采用这种方法。
    (2)直接读写GPIO驱动方式。目前有很多类型的液晶屏自带LCD控制器,ARM向控制器写控制指令和数据就可以完成对LCD的初始化和内容的显示。这种显示方法软件设计相对简单,占用的代码空间小,可以通过简单的控制芯片进行驱动。针对自带控制器的LCD,本文设计了直接读写GPIO驱动LCD的方法。该方法在底层驱动向LCD控制器和LCD的应用程序提供接口,LCD控制器的读写时序全部在底层驱动中完成,底层驱动向应用程序提供初始化接口和显示数据接口。该方法应用程序和内核的交互少,程序执行效率高。
2.2 LCD显示的实现
    通过上述分析,本文设计直接读写GPIO驱动带LCD控制器的液晶屏,该方法的程序结构如图1所示。

a.JPG


    在底层驱动中主要包括以下几个函数:
    (1)初始化函数s3c6410_inti。该函数包括2部分的初始化:一是对ARM11用于同LCD控制器相连GPIO口控制寄存器的初始化,核心语句是writel(tmp,S3C64XX_GPON),其中writel是驱动层的写函数,tmp是写入控制寄存器的数据,S3C64XX_GPICON是S3C6410中第I组GPIO口的控制寄存器,如果采用别的GPIO口就改用别的控制寄存器宏定义;二是对LCD控制器初始化。
    (2)写数据函数s3c6410_WRData和写命令函数s3c6410_WRCommand。这2个函数按照具体LCD控制寄存器的写数据时序和写命令时序,完成对LCD控制器的写数据和写命令,向GPIO写数据的函数是writel(tmp,S3C64XX_GPIDAT),writel和tmp与上述相同,S3C64XX_GPIDAT是S3C64 10中第I组GPIO口的数据寄存器。
    (3)显示函数s3c6410_LCDdisplay。该函数通过调用写命令函数和写数据函数到达在液晶屏上具体位置显示具体图片或文字的效果。
    (4)系统调用接口函数s3c64xx_ioctl(structfile*file,int cmd,long int data)。该函数定义s3c6410_inti和s3c6410_LCDdisplay2个函数接口通过系统调用iotcl(fd,1,xx)和iotcl(fd,2,xx),以供应用程序调用,应用程序使用iotcl(fd,1,xx)就可初始化结晶屏,只需要向s3c6410_LCDdisplay的接口iotcl(fd,2,xx)中写数据就实现了数据的LCD显示。

3 网络通信和显示的整体设计
    在网络通信和LCD显示的整体设计上,从LCD显示数据的有效性和网络系统工作的实时性角度出发,本文拟采用TCP/IP协议设计服务器和客户端双线程工作模式,液晶显示用直接读写GPIO的驱动方法,显示数据由计算机处理好后发送给ARM11客户端来实现。程序设计的流程图如图2所示。软件首先通过系统调用iotcl(fd,1,xx)调用函数底层驱动的液晶屏初始化函数初始化结晶屏,然后使用pthread_create()创建服务器线程和客户端线程。当线程建立后ARM11网络终端同时进入两个线程:服务器线程将一直等待客户端发起连接,当客户端有数据要发送时只要发起连接就能保证和它连接上,接收到客户端数据后用于LCD显示或者其他处理,处理完成后再回到等待客户端连接;客户端线程则一直扫描终端状态,一旦有数据需要发送给服务器就马上发起连接发送数据,数据发送完成后继续扫描。


c.JPG


    主程序核心代码如下:
b.JPG

4 系统运行效果分析
    在系统中网络终端和计算机的服务器线程一直处于工作状态,这样就保证了任何一端随时能作为客户端发起链接并链接成功,换个角度任何一端也能够随时收到客户端发送过来的数据,这样就实现了想发就发,有数据就收,达到了实时网络通信的实时性要求。
    ARM11网络终端上,将液晶显示的图片数据交由计算机处理,大大减少ARM11的处理时间,使得响应按键、开关等的速度更为迅速。LCD显示上采用直接读写GPIO,LCD控制器的读写时序全部在底层驱动中完成,应用程序和内核的交互少,试验证明内核的执行速度在数量级上大于应用程序的执行速度,程序运行效率高。

5 结语
    ARM11嵌入式系统以其体积小、处理速度快、功能强的特点,能实现实时性要求较高的网络组网和网络通信,从而进一步开拓了嵌入式系统的应用前景。本文通过设计TCP/IP协议服务器客户端双线程工作模式和直接读写GPIO驱动LCD,并将显示图片由网络交给计算机处理,提高了实时网络通信的可靠性和实时性,充分利用了计算机和ARM11的资源。同时该设计可移植性强,可应用到其他网络终端的工作,对ARM11嵌入式系统的应用具有借鉴意义。


关键字:ARM11  网络通信  LCD显示 编辑:什么鱼 引用地址:http://news.pyfle.com/mcu/article_2018021937898.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于ARM的嵌入式USB图像采集与显示方案
下一篇:基于嵌入式系统的I2C触摸屏设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ARM小记
ARM何物  ARM(Advanced RISC Machines,进阶精简指令集机器),如果你一直把这个单词读成“A”-“R”-“M”,那么将有一个好消息和一个坏消息要告诉你。好消息是:你 这是初次接触到ARM技术相关的文章,而本文内容正是专为你量身打造的,无论你是嵌入式系统的门外汉还是单片机技术的初学者,都可以通过本文轻松地了解ARM技术。 请相信我,这并不困难!坏消息是:我很抱歉的告诉你, 它的正确读法应该是“arm”,是手臂、胳膊的英文发音。 很出丑是不是?但除非你是在大声朗读,不然没人会知道 的。你又多了一个知识和一个不可告人的秘密。调整一下心态,我们的故事就从这里开始吧!  
发表于 2019-12-02
ARM小记
用ARM点亮一个led并闪烁
;       *//*               led.c:  用ARM点亮一个led并闪烁                    *//*                                        
发表于 2019-11-30
基于ARM倾角和加速度的检测装置的设计
部分:uVision IDE with Editor(编辑器),ARM C/C++Compiler(编译器),Pack Installer(包安装器),uVision Debugger with Trace(调试跟踪器)。  调试过程及现象分析硬件连接主要涉及的硬件有USB TO TTL模块、MPU6050模块、STM32F103RCT6最小系统板、TFT液晶显示器,如图5.1所示。图5.2 系统连接图实物连接图,如图5.3所示。USBTOTTL串口及蓝牙接口说明:VCC接VCC;GND接GND;TXD接RXD;RXD接TXD;MPU6050接口说明:VCC接VCC;GND接GND;SCL接PC12;SDA接PC11;INT
发表于 2019-11-29
基于ARM倾角和加速度的检测装置的设计
arm cortex m0 lpc1114的引脚图与综述
我们以LQFP48封装为例进行介绍。 从图中引脚上的描述可以看出,它的几乎每一个引脚上都复用了若干个功能。例如,第9脚:PIO1_8/CT16B1_CAP0,代表,第9脚既可以作为通用的输入输出引脚P1.8,也可以作为16位定时器1的捕获引脚。(关于什么是捕获引脚,请看Ration的《RATION LPC1114基础篇手册》)。引脚作为什么功能,需要通过IOCON模块来配置。现在,让我们把所有的引脚描述都看一遍吧!看完了引脚描述,你就会对它有一个基本的认识了。GPIO模块引脚:PIO0_0~PIO0~11PIO1_0~PIO1~11PIO2_0~PIO2_11PIO3_0~PIO3_5P0口,P1口,P2口各有12个引脚
发表于 2019-11-29
arm cortex m0 lpc1114的引脚图与综述
ARM处理器主要有哪些优势?
(MDK、Keil),全球约有50家以上的实时操作系统(RTOS)软件厂商和30家以上的EDA工具制造商,还有很多高效率的实时跟踪调试工具的厂商,对ARM提供了很好的支持。用户采用arm处理器开发产品,既可以获得广泛的支持,也便于和同行交流,加快开发进度,缩短产品的上市时间。4.完整的产品线和发展规划ARM核根据不同应用需求对处理器的性能要求,有一个从ARM7、ARM9到ARM10、ARM11,以及新定义的CortexM/R/A系列完整的产品线。前几年应用较多的主要是基于V4架构的ARM7TDMI、ARM720T、ARM920T核的一些处理器芯片,如NXP的LPC2000系列、ST的STR7/9系列、Atmel 的AT91系列
发表于 2019-11-29
一种基于ARM和智能手机的蓝牙CAN分析仪设计
买物图  ARM 处理器模块是本分析仪的核心,采用NXP公司的LPC2119处理器。LPC2119是基于一个支持实时仿真和跟踪的16/32位ARM7TDMI- STM CPU,带有128KB嵌入高速Flash存储器,并内部集成2个CAN控制器。其主要特点是:单个总线上的数据传输速率高达1MB/s;32位寄存器和 RAM访问;兼容CAN2.0B,IS011898.1规范;全局验收滤波器可以识别所有的11位和29位标识符;验收滤波器为选择的标准标识符提供 Full CAN-style自动接收。它主要负责将CAN总线上的数据进行处理,然后通过蓝牙串口发送到手机,此外,ARM模块还负责检测未知CAN总线上的波特率,并发送给手机端
发表于 2019-11-27
一种基于ARM和智能手机的蓝牙CAN分析仪设计
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD。com。cn, Inc。 All rights reserved
快乐赛车开奖时间 快乐赛车注册网址 快乐飞艇怎么样 快乐赛车代理怎么弄 智慧彩票投注 快乐赛车投注规律 优优彩票官网 江苏快三质合走势图 快乐赛车官方计划软件 快乐飞艇是什么