基于ARM的大屏幕LED显示系统的设计 第14页
5.2LEO显示控制器与上位PC机的串行通信软件设计
串行通信是微计算机之间一种常见的近距离通信手段,因使用方便、编程
简单而广泛使用,几乎所有的微控制器、PC都提供串行通信接口。本系统下位
机由基于ARM的微控制器组成,完成对L印显示屏的动态扫描;上位机中的PC
用于人机交互,运行在PC机上的应用程序主要完成对显示屏的控制,同时完
成对包括图形和中西文字符的显示信息进行编辑处理,将待显示内容的点阵信
息通过串行通信传输到指定的L印控制器中。串行通信的硬件设计在上一章已
说明,本节对ARM微处理器与PC机的串口通信软件进行设计。
5.2.153C4510B的串行口
S3C451OB的UART单元提供两个独立的异步串行工/0口,每个通信口均可
工作在中断模式或DMA模式,也即UART能产生内部中断请求或DMA请求,在
CpU和串行工/O口之间传送数据。
53C4510B的UART单元特性包括:波特率可编程:支持红外发送与接收;
l一2个停止位;5、6、7或8个数据位;奇偶校验。
每一个异步串行通信口都具有独立的波特率发生器、发送器、接收器和控
制单元。待发送的数据首先传送到发送缓冲寄存器,然后复制到发送移位器,
并通过发送数据引脚UATXDn发送出去。接收数据首先从接收数据引脚UARXDn
移入移位器,当接收到一个字节时就复制到接收缓冲寄存器。UARTO特殊功能
寄存器描述如表5一5所示,UARTI也同样。
表5一5oARTO特殊功能寄存器
寄寄存器器偏移地址址操作作复位值值功能描述述
UUULCONOOOoxD00000读/写写OXOOOOUARTO行控制寄存器器
UUUCONOOOOxDOO444读/写写OXOOOO以RTO控制寄存器器
UUUSTATOOOOxDOOSSS读读OxCOOOUARTO状态寄存器器
UUUTXBUFOOOOxDOOCCC写写未定义义UARTO发送保持寄存器器
UUURXBUFOOOOXDOIOOO读读未定义义UARTO接收缓冲寄存器器
UUUBRD工VOOOoxDO1444读/写写OxOOOOUARTO波特率除数因子寄存器器
BBBRDCNTOOOoxDO1888写写OXOOOO以RTO波特率计数寄存器器
BBBRDCLKOOOOxDOICCC写写OxOOOOUARTO波特率时钟监视器
硕士学位论文
(1)UART行控制寄存器:该两位「1:0]指示发送或接收的每帧的数据位,
‘00’=5位,‘02’=6位,‘10’=7位,‘21’=8位;位[2]指示每帧数据的停
止位数,‘O’=每帧一个停止位,‘1’二每帧两个停止位;该三位〔5:3〕指示在
数据的发送与接收过程中如何生成校验并进行检测;位[6〕用于选择时钟源,
O二内部时钟(MCLK),1二外部时钟(UCLK);位「7〕红外模式选择。
(2)UART控制寄存器:该两位[1:川的值决定当从UART接收缓冲寄存器
中读取数据时的当前功能;位[2〕决定当在数据的接收过程中发生异常(如发
生间断、帧错误、校验错误、或Overrun错误)时是否让UART产生中断请求;
位仁4:3」的值决定当写数据到UART发送缓冲寄存器中时的当前功能;位【5〕选
择是否产生数据设备准备好信号输出;位〔6〕选择是否发送间隔信号;位〔7〕选
择uART是否进入回环模式。
(3)UART状态寄存器:位「川在接收串行数据的操作中,当发生Overrun
错误时,该位自动置为‘1’,任何时候读取UART状态寄存器USTAT,该位都会
自动清零;位仁1〕在接收串行数据的操作中,当发生校验错误时,该位自动置
为‘l’;位「2〕在接收串行数据的操作中,当发生数据帧错误时,该位自动置
为‘1’;位「3」当接收到间隔信号时,该位自动置为‘1’;位〔4〕指示数据终端
准备好引脚(UADTR)的当前信号电平;位【5」当接收缓冲寄存器URXBUF从串
行口接收到一个有效数据时,该位自动置为‘1’,然后就可以从URXBUF中读
取接收到的有效数据;位「6」当发送缓冲寄存器UTXBUF为空时,该位自动置
为‘l’,此时可以向UTXBUF写入下一个要发送的数据;位〔7」当发送缓冲寄存
器UTXBUF为空时,且发送移位寄存器也为空时,该位自动置为‘1’。
(4)UART发送缓冲寄存器:位【7:田存放要发送的8位数据。
(5)UART接收缓冲寄存器:位「7:川存放接收到的8位串行数据。
(6)UART波特率除数因子寄存器:决定发送、接收的波特率。
5.2.253C4510B的串行通信软件设计
串行通信程序包括两方面,一方面是53C4510B的通信程序,另一方面为
PC机的通信程序。
(1)通信方式选择
串行通信传输方式有三种:单工,半双工,以及全双工,考虑全双工要求
硕士学位论文
的接线较多,我们采用半双工配置,通信方式上采用异步方式。53C4510B微处
理器对PC机的通信采用串口中断方式。本系统53C4510B的串行口初始化时用
UARTO串行口,由UARTO行控制寄存器ULCONO和控制寄存器UCONO设置工作状
又(
(2)S3C45lOB通信波特率设置及通信的设置
在串行通信中,一个重要的指标是波特率,它反映了串行通信的速率,也
反映了对传输通道的要求,波特率越高,要求传输通道的频带越宽。由于异步
通信双方各自用自己的时钟源,要保证捕捉到的信号正确,最好采用较高的时
钟,一般选择时钟频率比波特率高16倍或64倍。
53C4510B的UART的波特率发生器的输入时钟可以是系统时钟,也可以是
从外部引入时钟信号。本系统设计中,我们设置行控制寄存器ULCONO的位「6」
为O,选用内部时钟MCLK为波特率发生器的输入时钟,系统时钟为SOMHz,则
最大的波特率时钟输出为MCLK/32(=1.5625MHZ)。
波特率由UART波特率除数因子寄存器UBRD工VO的值决定。UBRDIVO为32
位寄存器,[3:O〕波特率除数因子值,xxxo=除1,xxxl=除16;[15:4〕时l冶」
常数值(CNTO),CNTO的计算公式如下:
CNTO=MCLK/(32又BR)一1(式5一3)
其中MCLK:系统的工作频率,BR:通信的波特率。
我们选择通信的波特率为19200b/s,那么CNTO=80,UBRDIVO=Ox500。现约
定其通信协议如下:串行通信波特率:19200bpS;帧格式:8位数据,1位停
止位,无奇偶校验;传送方式:PC机采用查询方式接收数据,53C4510B采用
中断方式接收,查询方式发送;握手信号:采用软件握手。
(3)53C4510B的通信程序设计
串行口中断服务程序在处理串行通信的过程中,每从上位机收到一个字节
数据后,都要把它传回给上位机,由上位机进行校验看是否出错。在中断服务
程序中,数据的接收和发送都是采用程序查询方式完成的,而不是通过中断方
式处理的。只是在主程序处理显示过程中,上位机需要向下位机下载时,由上
位机直接发数据,引发下位机中断主程序,转而进行中断服务。
从上位机传来的数据是按下列格式定义的:
硕士学位论文
第l字节一第2字节}第3字节j第4字节第N字节
其中,第一字节作为串行通信数据的起始标志,第二字节为16位显示数
据字节计数的低8位,第三字节为16位显示数据字节计数的高8位,从第四
字节开始是真正的显示数据。
关关中断,保护断点,读入第一个字节节
清清屏,关闭显示,所接收的字节发回上位机机
读读入第一多节,并发回回
读读入第止字节,并发回上位机,按字节计数数
值值指定的字节数接收并发回全部显示数据据
置置接收完毕标志,关闭接收收
恢恢复断点,中断返回回
图5一553C4510B接收数据中断服务程序
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] 下一页
基于ARM的大屏幕LED显示系统的设计 第14页下载如图片无法显示或论文不完整,请联系qq752018766