QNX系统中基于AM3352的多串口通信驱动设计
2018-09-07,
,
(国电南京自动化股份有限公司,南京210032)
引 言

图1 多串口电路设计
串口通信具有稳定可靠、简单易实现的特点,因此在自动化领域有着广泛的应用。以一个智能变电站的通信管理服务器为例,需要设计一路调试口和多路规约通信口,同时还要支持多个串口外设,由于CPU本身提供的串口资源有限,往往不能满足上述的设计需求,而通过在FPGA上设计出支持串口协议的IP核则可以很容易地对串口进行扩展,解决CPU串口资源不足的问题。
1 原理设计
本方案用AM3352作为主控CPU,AM3352是一款基于ARM Cortext-A8内核的微处理器,主频最高支持720 MHz,运算能力高达1 600 DMIPS,具有丰富的外围接口,带6路异步串口,能搭配DDR3,支持大容量的eMMC和NAND FLASH。图1 给出了基于AM3352的多串口电路设计示意图,AM3352提供了6路本机串口UART0~UART5,另2路串口通过FPGA进行扩展。为FPGA设计了支持串口协议的IP核,对IP核进行实例化,实现了扩展串口UART7~UART8。AM3352 利用GPMC接口连接FPGA,实现对扩展串口的控制,同时将中断请求资源GPIO3_16、GPIO3_17分别分配给UART7和UART8,由FPGA通过中断的方式通知CPU读取接收缓存区存放的数据。
在串口IP核里按图2设计了寄存器组和存储器,存储器Tx_Mem和Rx_Mem用于缓存发送数据和接收数据,寄存器Tx_Len存储有效发送数据长度用于CPU通知FPGA要发送的字节数,寄存器Rx_Len存储有效接收数据长度,用于FPGA告诉CPU放在接收缓存区Rx_Mem可被读取的字节数,寄存器BUGR用于扩展串口通信速率的设置,寄存器IER用于中断使能的配置,寄存器IFR标识中断源,中断响应后应由中断服务程序对其相应位置0予以清除中断。

图2 扩展串口地址空间分配……p>
