document.write (''); document.write ('');
收缩
  • 电话咨询

  • 0769-26266341
  • 0769-22287019
www.qg999.com,钱柜娱乐,钱柜娱乐999,售后服务 东莞电机,产品资质

钱柜娱乐999

钱柜娱乐销售部

电  话:0769-26266341
电  话:0769-22287019

传  真:0769-28057097
邮  编:523000

地  址:东莞市万江区共联社区一号

钱柜娱乐

UART中断子程序的影响

Modbus协议通信有两种模式,广播模式和单播模式。对于单播模式,就是主机与特定的从机进行通信,可读可写数据。每个从机必须有唯一的地址码,以区别与其它从机。从机在接受到主机的请求报文时,要发送相应的响应报文。对于广播方式,主机和所有的从机通信,一般用于写数据,从机只需要接受主机的报文,不需要回任何报文。(1)Modbus中贞对于串行链路层,Modbus的数据帧如描述,此顿最长的字节数为256,其中广播模式时,地址码为0,从机的地址码取值1-247,功能码通知服务器执行哪种功能。PDU表示与基础通信层无关的简单协议数据单元,ADU是应用数据单元。

表1:Modbus帧格式

地址码 功能码 数据 CRC校验
1个字节 1个字节 0-2字节 2个字节,先CRC低位/CRC高位

ARM芯片采用了异步收发器UART串口进行通信,寄存器符合16C550工业标准,具有16个字节的接受/发送FIFO,且接受器FIFO触发点可设为1、4、8和14字节,内置波特率发生器。UART工作模式支持全双工模式,支持5-8位数据长度,1位起始位,1或2位的停止位,可选奇偶校验位。

www.qg999.com,钱柜娱乐,钱柜娱乐999设计采用了Modbus协议的RTU模式,UART的工作模式为半双工方式,采用了8位数据长度,1位起始位,1位停止位,采用了RTU默认的偶校验。

UART通信时,需要初始化,先释放UART的中断,幵功率外设UART,设置数据传输格式,设置波特率,校验位、数据位数、本次设计中设计为9600kps,使能接受FIFO,并设置接受HFO中断触发深度为14位,选中IO引脚为输出引脚TXD、输入引脚RXD,设置UART中断。

本次设计中用了UART的中断的三种情况:接受数据可用中断(RDA中断),字符超时中断(CTI中断),发送中断(THRE中断),如表5.7所示。

表2:UART中断处理

UxIIR 优先级 中断类型 中断复位
0x04 第二 RDA中断 UxRBR读/接收字符数低于触发深度
0x0c 第二 CTI中断 UxRBR 读
0x02 第三 THRE中断 UxIIR读/UxTHR写操作

RDA中断和CTI中断不可能同时发生,所以两个优先级相同。

当UART的接收FIFO达到触发深度时,RDA发生中断,UxIIR设置为0x04。当接收FIFO中有效的字节数触发深度(但至少有一个),如果过一段时间仍没有数据到达,将CTI中断,UxIIR设置为0x0c。此时CPU就认为一个完整的字符串己经结束,然后接收FIFO中余下的数。这段触发时间一般设置为3.5-4.5个字符时间。

若仅向发送FIFO中写入1个字节数据时,将在延时一个字节加上一个停止位发送的时间后,才产生THRE中断;若向发送FIFO中写入两个字节及以上的数据,但现在发送FIFO为空时,将立即产生THRE中断。