摘要
使用直接内存存取(DMA)方式接收报文时,必须先向DMA控制器指定需要接收的字节。当DMA控制器接收到指定字节后,产生DMA传输中断。但是在实际应用时,串口接收报文的字节往往是不固定的。针对DMA必须接收固定长度的数据才产生传输中断的不足,设计了外部中断与定时器相结合的方法来解决这一问题。该方法兼顾了DMA传输不需要CPU干预的优点,又弥补了其不能传输不定长数据的缺陷。外部中断由一个与串口RXD引脚相连接的外部引脚产生。该中断产生的EVENT事件与定时器的输入事件相关联。设置定时器为Retrigger模式,接收到EVENT事件后清零定时器的累计时间;而当定时器一定时间内接收不到EVENT事件后就会超时产生中断,在超时中断服务程序中进行报文处理。由于使用了定时器超时中断进行报文处理,实现了不定长报文的接收和处理,满足了串口通常传输不定长报文的需求。
-
单位南京南瑞继保电气有限公司