一種雙CAN口同步通訊板的設計
?。?)CAN隨機通訊模塊負責與PLC的隨機CAN通訊,接收來自PLC的突發(fā)數據,發(fā)送來自TTCAN網絡數據;
?。?)TTCAN通訊模塊負責與TTCAN網絡通訊,TTCAN是一種基于CAN總線充分利用時間觸發(fā)與事件觸發(fā)兩種機制優(yōu)點的新型協議,其具有帶寬利用率高、通訊延時低以及消息傳輸可管理等特點,對于分布式硬實時系統的應用以及解決網絡控制系統中消息延時具有重大的意義。在同步信號控制下按時序要求向TTCAN網絡發(fā)送數據和接收來自PLC的隨機CAN數據:
?。?)數據緩沖模塊負責PLC和TTCAN網絡數據的同步,完成必要的通訊處理任務。圖4為各模塊之間的協同工作流程。
4.1 CAN隨機通訊模塊軟件
首先初始化TMS320LF2407的SPI接口,然后設置MCP2515 CAN的通訊參數完成模塊的初始化。函數SPI_WRITE_COMMAND(unsigned int ADDRESS,unsigned intDATA)更新MCP2515的指定寄存器中的內容;函數SPI_READ_COMMAND (unsigned int ADDRESS) 讀取MCP2515指定寄存器;函數RTS_123(unsigned int NUM)從數據緩沖區(qū)提取數據按指定通道數據發(fā)送給PLC;函數RANDOM_RCV()將來自PLC的數據經查詢接收后存放到數據緩沖區(qū)。
4.2 TTCAN通訊模塊軟件
該模塊由甬數CAN_INIT()完成對TMS320LF2407內部CAN控制器的初始化及通訊參數設置;函數dsp_can_send(unsigned int IDH,unsigned int IDL,unsigned int*data1)從數據緩沖區(qū)提取數據向TTCAN網絡發(fā)送;接收中斷服務函數CAN_RCV_ISR()從TFCAN網絡接收數據并存入數據緩沖區(qū);而同步信號接收函數sytem_syn()實現與TTCAN網絡的同步以及發(fā)送時隙的控制。
4.3 數據緩沖模塊軟件設計
該模塊是雙CAN口同步通訊板的核心,其目的就是確保來自PLC的隨機數據經該模塊后可以實現向,TTCAN網絡發(fā)送的數據是在同步信號控制下,按指定時隙發(fā)送,來自TTCAN網絡的數據經該模塊做必要的解析后轉發(fā)給PLC。為此設計兩個循環(huán)隊列緩沖區(qū)mcp2515_rcv_buffer和dsp_rcv_buffer實現PLC數據與TTCAN網絡同步。實現方法如下:
(1)通訊板接收到PLC數據后,將其數據存放到mcp2515_rcv_buffer緩沖區(qū)中,然后MCP2515指示索引 mep2515_rcv_index加1;DSP CAN同步數據發(fā)送時按索引dsp_send_index的值從mcp2515_rcv_buffer緩沖區(qū)對應位置提取發(fā)送數據,然后該索引值加1,dsp_send_index==mcp2510_rcv_index,表明MCP2515緩沖器已滿。
?。?)同步CAN口接收的數據存放到dsp_rcv_buffer緩沖區(qū),然后指示索引dsp_rcv_index加1;MCP2515數據發(fā)送使用索引 mcp2510_send_index在循環(huán)緩沖區(qū)dsp_rcv_buffer提取對應的數據發(fā)送給PLC CAN。當mcp2510_send_index==dsp_rcv_index,表明DSP接收緩沖區(qū)空;(dsp_rcv_index+1)% FIFOMAX==mcp2510_send_index表明DSP緩沖隊列滿。
5 結束語
該雙CAN口同步通訊板在連續(xù)600 h、不同數據流量的測試中表現良好,無任何異?!,F已成功應用于某型防空武器火力控制分系統。實踐表明該設計能夠很好擴展PLC在防空武器系統TTCAN 網絡上的應用,極大提高了火力控制系統在戰(zhàn)場條件下的可靠性和可維護性,符合模塊化設計總要求。同時,該雙CAN口同步通訊板也可廣泛用于事件觸發(fā)數據與 TTCAN網絡的接入應用。
評論