




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ARM开发教程之ARM7串口9位方式多机通信的编程技术1 .主从式多机通信 512. ARM7串口UART0内部结构 UOIIR寄存器 UOIIR寄存器3 .9位方式多机通信编程实现ARM串口通信的奇偶校验功能4. 总 结11 . ARM开发教程之主从式多机通信所谓主从式多机系统,即在数个arm(或单片机)中,有一个是主机,其余的为从机。从机要服从主机的调度、支配,其拓扑结构如图1所示。主机信息可以发到各个从机,从机发送的信息只能被主机接收,从机之间不进行通信。2ARM开发教程之51单片机51单片机串口不同寻常的特征是包括第9位方式(在串口模式2和模式3下)。它允许把在串行口通信增加的第9位用
2、于标志特殊字节的接收。一般约定第9位为高时表示该字节为地址字节,第9位为低时为数据字节。第9位方式允许接收单片机信息,仅当字节具有一个第9位时才能被中断。用这种方式,主机首先广播1字节,并让其第9位为高,同时收到该字节的各个从机,只有地址相符的打开,以接收后面的数据字节。所接续的数据字节(第9位为低)不能引起其他从机中断,因为未送它们的地址。51单片机用9位方式多机通信时,串口模式必须在方式2或方式3。3其实现多机通信的原理和工作过程如下:作主机的8051的SM2应设定为O,作从机的sM2设定为1。主机发送并被从机接收的信息有两类:一类是地址,用于指示需要和主机通信的从机地址,由串行数据第9位
3、为“1”来标志;另一类是数据,由串行数据第9位为“0”来标志。由于所有从机的SM2=1,故每个从机总能在R1=O收到主机发来的地址(因为串行数据的第9位为“l”),并进入各自的中断服务程序。在中断服务程序中,每台从机把接收到的从机地址和它的本机地址(系统设计时所分配)进行比较。所有比较不相等的从机均从各自的中断服务程序中退出(SM2仍为1),只有比较成功的从机才足被主机寻址通信的从机。4被寻址的从机在程序中使SM2=0,以便接收随之而来的数据或命令(RB8=0)。上述过程进一步归结如下:主机的SM2为O,所有从机的SM2=1,以便接收主机发来的地址。主机给从机发送地址时,第9数据位应设置l,以
4、指示从机接收这个地址。所有从机在SM2=1、RB8=1和RI=O时,接收主机发来的从机地址,进入相应中断服务程序,并与本机地址相比较,以便确认是否为被寻址从机。被寻址从机通过指令清除SM2,以便正常接收数据,并向主机发回接收到的从机地址,供主机核对。未被寻址的从机保持SM2=1,并退出各自中断服务程序。完成主机和被寻址之间的数据通信,被寻址从机在通信完成后重新使SM2=l,并退出中断服务程序,等待下次通信。5从以上8051实现9位方式多机通信的过程可见,关键问题在于:发送端(主机)如何发送第9位,并且可编程设置1或O;接收端(从机)如何接收到这第9位,并判断出是l还是0。以上问题,8051串口
5、可通过控制寄存器SCON中的TB8、RB8和SM2位的设置和读取轻松解决,但在ARM中并没有与805l类似功能的寄存器。那么ARM7多机系统怎样实现如上9位方式多机通信呢?下面通过分析ARM串口(以UART0为例)的内部结构和相关寄存器,给出一个有效的解决方案。62. ARM开发教程之ARM7串口UART0内部结构使用ARM7串口UARTO之前须设置5个寄存器,即中断使能寄存器UOIER、UARTO格式控制寄存器UOLCR、FIFO控制寄存器UOFCR和波特率设置寄存器UODLM和UODLL。发送过程是:CPU内核通过VPB接口对UARTO的寄存器进行读写访问,数据首先进入发送缓存UOTHR,
6、经发送移位寄存器UOTSR逐位移出,经TxDO引脚输出。接收过程是:数据经RxDO,先进入接收移位寄存器UORSR,经接收缓存U0RBR,通过VPB与CPU内核相连。特别注意的是,通信过程中ARM7串口中的中断标志寄存器U0IIR和UART0状态寄存器UOLSR的各位将随着通信收发而自动受到影响,也就是说这两个寄存器记录了数据通信过程的状态信息,这些信息很有用。7ARM开发教程之UOIIR寄存器UOIIR寄存器的描述如表1所列UOIIR提供状态代码,用于指示一个挂起中断的中断源和优先级。在访问UOIIR的过程中,中断被冻结。如果在访问UOIIR时产生了中断,该中断将被记录,在下次访问UOIIR
7、时可以读出,避免了中断的丢失。8UOLSR寄存器描述如下:9RDR:接收数据就绪。判断该位是否置1,决定能否从FIF0中读取数据。0UORBR为空。lUORBR中包含有效数据。从接收FIFO中读走所有数据后,恢复为O。0E:溢出错误标志。当U0RBR寄存器中已经有新的字符就绪,而接收FIF0已满时,该位置位。0接收缓存区没有溢出。1接收缓存区发生溢出错误。PE:奇偶校验错误。在使能奇偶校验位之后,对所有接收的数据都进行奇偶校验,如果与UOLCR中的设置不符,将引起奇偶校验错误。O没有发生奇偶校验错误。1发生奇偶校验错误。读操作使该位恢复为O。10FE:帧错误标志。当接收字符的停止位为O时,产生
8、帧错误。 O没有发生帧错误。1发生帧错误。读取该位时恢复为O。BI:间隔中断标志。在发送数据时,如果RXDO引脚保持低电平,将产生间隔中断。发生间隔中断后,接收模块停止数据接收。O没有发生间隔中断。1发生间隔中断。THRE:反映UOTHR是否为空,也可以认为发送FIFO是否为空。O不为空。1空。对UOTHR进行写操作,使该位恢复为O。TEMT:当发送移位寄存器和UOTHR均为空时,该位置位。0不为空。1空。对UOTHR进行写操作,使该位恢复为0。11RXFE:如果一个带有接收错误(如帧错误、奇偶错误或间隔中断)的字符装入UORBR时,该位置位。OUORBR中没有接收错误,或UOFCRO为0。1
9、UORBR中包含至少一个UARTO Rx错误。另外,还有两个很重要的寄存器:一个是前面提到的格式控制寄存器UOLCR,另一个是FIFO控制寄存器UOFCR。12UOLCR寄存器的描述如下:13其中第3位和第4、5位十分重要。奇偶使能:控制是否进行奇偶校验。如果使能,发送时将添加一位校验位。O禁止奇偶产生和校验。1使能奇偶产生和校验。奇偶选择:设置奇偶校验类型。OO奇数(数据位+校验位=奇数)。01偶数(数据位+校验位=偶数)。10校验位强制为1。11校验位强制为O。14ARM开发教程之U0FCR寄存器U0FCR寄存器的描述如下:这里面注意第6、7位。15Rx触发点设置:通过设置这两位可以调整接
10、收FIF0中触发RDA中断的有效字节数量。00触发点O(1字节)。01触发点1(4字节)。10触发点2(8字节)。11触发点3(14字节)。163. ARM开发教程之9位方式多机通信编程实现上面已说明,9位方式多机通信的关键是第9位的编程发送和第9位的接收和判断。对于发送端,利用UOLCR寄存器的设置便能实现第9位的编程发送。UOLCR=0 x2B; 带奇偶校验,强制为lUOLCR=Ox3B; 带奇偶校验,强制为O通过以上设置,只要编程发送1字节,arm就自动将第9位按程序设置的0或1发送出去。难点在于接收端,即接收端把接收到的第9位放到哪了,程序员又如何知道这第9位是0还是1。其实,ARM并不像51单片机那样把接收到的第9位数据自动装入SCON的RB8。实际上,ARM并没有这样的寄存器SCON,也没有RB8位。要实现判断第9位为1或0,只能利用ARM串口通信的奇偶校验功能!17ARM开发教程之利用ARM串口通信的奇偶校验功能思路利用ARM串口通信的奇偶校验功能思路如下:设置奇偶校验使能;编程读取UOLSR寄存器的PE位(具体含义见UOLSR寄存器的描述部分);编程判断收到的l字节中有多少个“1”,并设置一标志PP;将上述标志与PE位比较处理;比较的结果就正确表示了第9位是“O”,还是“1”。按照以上思路,可有效实现第9位的判断。下面给出相应的程序代码:181
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地方高校转型实践的策略及实施路径
- 二零二五年度车辆借出责任免除及驾驶规范合同
- 2025年度商务协议翻译及全球供应链管理服务合同
- 水路运输矿石采购合同
- 2024-2030年中国足球用品行业市场深度分析及投资策略研究报告
- 机械制造工艺测试题+参考答案
- 包装设计师模拟习题+答案
- 第六单元课外古诗词诵读《卜算子·黄州定慧院寓居作》教学设计-2023-2024学年统编版语文八年级下册
- 2025年新型复合型菌剂合作协议书
- 2025年阻燃塑料电表箱行业深度研究分析报告
- 川教版三年级下册《生命生态安全》教学设计含教学计划【附安全知识】
- MSOP(测量标准作业规范)测量SOP
- 最新2022年减肥食品市场现状与发展趋势预测
- 第一章-天气图基本分析方法课件
- 发展汉语初级综合1:第30课PPT课件[通用]
- 马工程西方经济学(第二版)教学课件-(4)
- 暖气管道安装施工计划
- 体育实习周记20篇
- 杭州育才小升初数学试卷(共4页)
- 初二物理弹力知识要点及练习
- 复合材料成型工艺及特点
评论
0/150
提交评论