网站导航

技术文章

当前位置:主页 > 技术文章 >
ARM7串口9位方式多机通信的编程技术
时间:2011-01-08 22:28 点击次数:
本文摘要:1主从多机通信所谓主从多机系统,即多个ARM(或单片机)中的一个是主机,其余是从属系统。机器要服从主机调度、支配,其多种体结构如图1的右图所示。主机信息可以负担单个slave,机器发送的信息不能由主机接管,机器之间不展开通信。 51单片机串口的特殊特点是还包括第九种方法(串行模式2和模式3下)。串行端口通信减少的第九位可以用作标志相似字节的接管。一般誓言第9位是低时的响应字节是地址字节,第9位是低时的数据字节。

hth华体会最新网站

1主从多机通信所谓主从多机系统,即多个ARM(或单片机)中的一个是主机,其余是从属系统。机器要服从主机调度、支配,其多种体结构如图1的右图所示。主机信息可以负担单个slave,机器发送的信息不能由主机接管,机器之间不展开通信。

51单片机串口的特殊特点是还包括第九种方法(串行模式2和模式3下)。串行端口通信减少的第九位可以用作标志相似字节的接管。一般誓言第9位是低时的响应字节是地址字节,第9位是低时的数据字节。

排在第9位的方式允许单片机信息的交接,只有字节排在第9位时才能中断。这样,主机首先广播一个字节,降低第9位,只终止该字节的每个从属(地址匹配),接管下一个数据字节。

后半部分的数据字节(第9位较低)没有发送地址,因此不能发生其他从属中断。51单片机与9位多机通信时,串行端口模式必须在方法2或方法3中。构建多机通信的原理和工作过程如下。

8051的sM2,而不是主机,本来就不应该是O,机器的SM2原件也不应该是1。主机发送和机器接管的信息有两种类型。一个是命令需要与主机通信的从属地址,串行数据第9位显示为1。另一个类别是串行数据的第9位标记为0的数据。

由于所有从属服务器的SM2=1,每个从属服务器总是从R1=O接收主机发送的地址(因为串行数据的第9位是L),然后移动到各自的中断服务程序。中断服务程序将每个从属服务器接管的从属地址与相应的本地地址(在系统设计时分配)进行比较。所有不更大的从属端都将从相应的中断服务程序(SM2仍然是1)中拆除,只有相对平滑的从属端脚由主机传输速率进行通信。传输速率的slave在程序中创建SM2=0,接管后续数据或命令(RB8=0)。

上述程序是因为以下原因:1主机的SM2为O,所有从属服务器的SM2=1是为了接收主机发送的地址。主机从机器发送到地址时,第九个数据位不能设置L,命令机器接管此地址。所有从属服务器都在SM2=1、RB8=1和RI=O时,接收主机发送的从属地址,转移到相应的中断服务程序,与本地地址进行比较,确认是波特率从属服务器。

传输速率可以通过机器通过命令整理,长时间接收数据,并将接收到的从属地址返回主机进行主机比较。(威廉莎士比亚、Northern Exposure(美国电视剧)、传输速率、传输速率、传输速率)没有传输速率的石板保持SM2=1,并拆除各中断服务流程。主机和波特率之间的数据通信完成,发送率在通信完成后新建SM2=l,卸载中断服务程序,等待下一次通信。

从上面的8051构建9位方式的多机通信的过程中可以看出,关键问题是如何将1号终端(主机)发送到第9位,可编程设置1或O。接收端(机型)如何收购第九名,辨别L还是0。

(阿尔伯特爱因斯坦,Northern Exposure(美国电视剧),接收名言)在上述问题中,8051串行端口可以通过控制寄存器SCON中的TB8、RB8和SM2位设置和负载来解决问题,但ARM没有类似于805l的功能寄存器。那么,ARM7多机系统如何构建9位方式的多机通信呢?下面分析ARM串口(UART0案例)的内部结构及相关寄存器,提供有效的解决方案。2ARM7串行端口UART0内部结构在用于ARM7串行端口UARTO之前,需要设置5个寄存器。

也就是说,中断寄存器UOIER、UARTO格式控制寄存器UOLCR、FIFO控制寄存器UOFCR和波特率设置寄存器UODLM和UODLL。传输过程是CPU内核通过VPB模块对UARTO寄存器进行读写访问,数据首先发送到存储器UOTHR,然后发送到移动寄存器UOTSR,放弃偏移,通过TxDO插槽输入。

接管过程是数据通过RxDO进入接管移动寄存器UORSR,接管内存U0RBR,通过VPB连接到CPU核心。特别是,在通信期间,ARM7串行端口的中断标志寄存器U0IIR和UART0状态寄存器UOLSR在通信传输时自动受到影响。

也就是说,这两个寄存器记录了数据通信过程的状态信息,该信息非常简单。UOIIR寄存器的说明见表1。

UOIIR获取暂停中断的中断源和用作优先级的状态代码。在接受UOIIR采访时,中断无效。

在接受UOIR采访时,如果发生中断,将记录中断,下次访问UOIR时可以朗读,防止中断的损失。UOLSR寄存器描述如下。

RDR:准备接收数据。这个位变为1,确定FIF0是否可以读取数据。0UORBR为空。

LUORBR包含有效的数据。从接管FIFO读取所有数据后,完全返回O。0E:阻止错误标志。

当U0RBR寄存器中已经准备好新字符,并且已经剩下接管FIF0时,就是这个防卫位。0接管内存区域未被阻止。1内存区域接管再次发生阻止错误。

PE:奇偶校验错误。设置奇偶校验位后,对所有接管的数据展开奇偶校验,并与UOLCR中的设置相匹配,将发生奇偶校验错误。

0奇偶校验错误没有再次发生。1奇偶校验错误再次发生。

阅读操作员将这个位完全恢复到O。FE:帧错误标志。如果接管字符的暂停位为O,则会发生帧错误。没有再次发生0帧错误。

再次发生1帧错误。加载此位后,它将完全返回到o。BI:间隔中断标志。

传输数据时,如果RXDO插槽保持低水平,则间隔将中断。如果间隔再次中断,接管模块将暂停数据接管。没有再次发生0间隔中断。

1间隔中断再次发生。THRE:可以指示头像UOTHR no null或发送到FIFO为null。0不为空。

hth华体会

1是空的。扩展UOTHR的写操作器,将位完全还原到O。TEMT:移位寄存器和UOTHR都传输到机器时的这个位置。

0不为空。1是空的。

为UOTHR部署写入器,将位完全恢复到0。RXFE:卸载UORBR时,存在接管错误(如帧错误、奇偶校验错误或间隔中断)的字符所在的位置。0UORBR没有接管错误或uofcr [o]为0。

1UORBR包含一个或多个UARTORx错误。


本文关键词:ARM7,串口,9位,方式,多机,通信,的,编程,技术,hth华体会最新网站

本文来源:hth华体会-www.ec-js.com

如果您有任何问题,请跟我们联系!

联系我们

Copyright © 2008-2021 www.ec-js.com. hth华体会科技 版权所有 备案号:ICP备96290189号-8

地址:台湾省台湾市台湾区平初大楼66号

在线客服 联系方式 二维码

服务热线

0254-241089744

扫一扫,关注我们