,
(國電南京自動化股份有限公司,南京210032)

圖1 多串口電路設計
串口通信具有穩定可靠、簡單易實現的特點,因此在自動化領域有著廣泛的應用。以一個智能變電站的通信管理服務器為例,需要設計一路調試口和多路規約通信口,同時還要支持多個串口外設,由于CPU本身提供的串口資源有限,往往不能滿足上述的設計需求,而通過在FPGA上設計出支持串口協議的IP核則可以很容易地對串口進行擴展,解決CPU串口資源不足的問題。
本方案用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>