<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總線(xiàn)—PROFIBUS-DP總線(xiàn)網(wǎng)關(guān)的實(shí)現方法

一種CAN總線(xiàn)—PROFIBUS-DP總線(xiàn)網(wǎng)關(guān)的實(shí)現方法

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

因為SJA1000的初始化只有在復位模式下才可以進(jìn)行,因此程序首先將SJA1000的中斷屏蔽,使它進(jìn)入復位模式,然后對它進(jìn)行初始化。初始化內容主要包括工作方式的設置、接受濾波方式的設置、接受屏蔽寄存器和接受代碼寄存器的設置、波特率參數設置和中斷允許寄存器的設置等。 SJA1000完成初始化設置后,再讓它返回到工作狀態(tài),進(jìn)行正常的通信任務(wù)。

在接受子程序里,系統以查詢(xún)的方式接受CAN子站傳送過(guò)來(lái)的數據,網(wǎng)關(guān)通過(guò)接受緩沖區數據區的第一個(gè)字節的內容判斷接受的是真正的數據,還是發(fā)給 站點(diǎn)的發(fā)送數據請求。如果數據區第一個(gè)字節是00H,則傳送的是數據信息,于是根據ID查表求得該站所對應的存儲單元,并將數據區的第二、三字節的內容存在該單元內,同時(shí)把ID放在7FFCH中,告訴對方發(fā)送數據的站點(diǎn)號;如果該字節內容是FFH,則說(shuō)明是發(fā)送數據請求,數據區第二個(gè)字節存放的是被要求發(fā)送數據的站點(diǎn)號,將他放入7FFCH內即可。

接口發(fā)送數據子程序流程圖如圖5:

CAN總線(xiàn)接口發(fā)送數據子程序流程圖

上面的發(fā)送程序是由雙口RAM的中斷信號觸發(fā)的,收到中斷信號后,首先讀取7FFEH單元的內容,將中斷信號消除,然后根據該單元的內容,判斷雙口RAM內存放的是數據,還是被要求發(fā)送數據的CAN子站的ID號。如果7FFEH內容為00H,則說(shuō)明所要發(fā)送到CAN子站的為正常的數據,于是將發(fā)送緩沖區的第一個(gè)字節設置為00H,告訴CAN子站發(fā)送的為數據,然后讀取7FFDH單元內容,查表求得數據在雙口RAM中的地址,并從該地址取兩個(gè)字節存到SJA1000輸出緩沖區數據區的第二、三個(gè)字節,同時(shí)把7FFDH作為發(fā)送的ID號。如果7FFDH是FFH,則說(shuō)明PROFIBUS- DP發(fā)送過(guò)來(lái)得是被要求發(fā)送數據的CAN子站的站點(diǎn)號,于是只要把它放到SJA1000發(fā)送緩沖區數據區的第二個(gè)字節,并把第一個(gè)字節設為FFH,以通知 CAN站點(diǎn),發(fā)送的數據為ID號。以上工作完成后,最后通過(guò)寫(xiě)命令字發(fā)送數據。


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

評論


相關(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>