<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種雙CAN口同步通訊板的設計

一種雙CAN口同步通訊板的設計

作者: 時(shí)間:2011-08-19 來(lái)源:網(wǎng)絡(luò ) 收藏

  4 雙板軟件

  雙板軟件分為3個(gè)模塊:

 ?。?)隨機模塊負責與PLC的隨機CAN通訊,接收來(lái)自PLC的突發(fā)數據,發(fā)送來(lái)自TTCAN網(wǎng)絡(luò )數據;

 ?。?)TTCAN通訊模塊負責與TTCAN網(wǎng)絡(luò )通訊,TTCAN是一種基于CAN總線(xiàn)充分利用時(shí)間觸發(fā)與事件觸發(fā)兩種機制優(yōu)點(diǎn)的新型協(xié)議,其具有帶寬利用率高、通訊延時(shí)低以及消息傳輸可管理等特點(diǎn),對于分布式硬實(shí)時(shí)系統的應用以及解決網(wǎng)絡(luò )控制系統中消息延時(shí)具有重大的意義。在信號控制下按時(shí)序要求向TTCAN網(wǎng)絡(luò )發(fā)送數據和接收來(lái)自PLC的隨機CAN數據:

 ?。?)數據緩沖模塊負責PLC和TTCAN網(wǎng)絡(luò )數據的同步,完成必要的通訊處理任務(wù)。圖4為各模塊之間的協(xié)同工作流程。

各模塊之間的協(xié)同工作流程

  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)從數據緩沖區提取數據按指定通道數據發(fā)送給PLC;函數RANDOM_RCV()將來(lái)自PLC的數據經(jīng)查詢(xún)接收后存放到數據緩沖區。

  4.2 TTCAN通訊模塊軟件

  該模塊由甬數CAN_INIT()完成對TMS320LF2407內部CAN控制器的初始化及通訊參數設置;函數dsp_can_send(unsigned int IDH,unsigned int IDL,unsigned int*data1)從數據緩沖區提取數據向TTCAN網(wǎng)絡(luò )發(fā)送;接收中斷服務(wù)函數CAN_RCV_ISR()從TFCAN網(wǎng)絡(luò )接收數據并存入數據緩沖區;而同步信號接收函數sytem_syn()實(shí)現與TTCAN網(wǎng)絡(luò )的同步以及發(fā)送時(shí)隙的控制。

  4.3 數據緩沖模塊軟件

  該模塊是雙CAN口同步通訊板的核心,其目的就是確保來(lái)自PLC的隨機數據經(jīng)該模塊后可以實(shí)現向,TTCAN網(wǎng)絡(luò )發(fā)送的數據是在同步信號控制下,按指定時(shí)隙發(fā)送,來(lái)自TTCAN網(wǎng)絡(luò )的數據經(jīng)該模塊做必要的解析后轉發(fā)給PLC。為此兩個(gè)循環(huán)隊列緩沖區mcp2515_rcv_buffer和dsp_rcv_buffer實(shí)現PLC數據與TTCAN網(wǎng)絡(luò )同步。實(shí)現方法如下:

 ?。?)通訊板接收到PLC數據后,將其數據存放到mcp2515_rcv_buffer緩沖區中,然后MCP2515指示索引 mep2515_rcv_index加1;DSP CAN同步數據發(fā)送時(shí)按索引dsp_send_index的值從mcp2515_rcv_buffer緩沖區對應位置提取發(fā)送數據,然后該索引值加1,dsp_send_index==mcp2510_rcv_index,表明MCP2515緩沖器已滿(mǎn)。

 ?。?)同步CAN口接收的數據存放到dsp_rcv_buffer緩沖區,然后指示索引dsp_rcv_index加1;MCP2515數據發(fā)送使用索引 mcp2510_send_index在循環(huán)緩沖區dsp_rcv_buffer提取對應的數據發(fā)送給PLC CAN。當mcp2510_send_index==dsp_rcv_index,表明DSP接收緩沖區空;(dsp_rcv_index+1)% FIFOMAX==mcp2510_send_index表明DSP緩沖隊列滿(mǎn)。

  5 結束語(yǔ)

  該雙CAN口同步通訊板在連續600 h、不同數據流量的測試中表現良好,無(wú)任何異?!,F已成功應用于某型防空武器火力控制分系統。實(shí)踐表明該設計能夠很好擴展PLC在防空武器系統TTCAN 網(wǎng)絡(luò )上的應用,極大提高了火力控制系統在戰場(chǎng)條件下的可靠性和可維護性,符合模塊化設計總要求。同時(shí),該雙CAN口同步通訊板也可廣泛用于事件觸發(fā)數據與 TTCAN網(wǎng)絡(luò )的接入應用。



上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 設計 通訊 同步 CAN

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>