<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)的嵌入式車(chē)燈監控系統設計

基于CAN總線(xiàn)的嵌入式車(chē)燈監控系統設計

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

3.1.1 節點(diǎn)初始化
系統的主要任務(wù)是實(shí)現上位機與下位機之間的通訊,將下位機節點(diǎn)采集到的電壓電流參數上傳至上位機并顯示給用戶(hù),實(shí)時(shí)反映的工作狀況。因此通訊任務(wù)具有最高級別的優(yōu)先級。在任務(wù)taskican中,首先完成節點(diǎn)的初始化,包括端口初始化、設定波特率、設置驗收濾波等,初始化通過(guò)調用Stellaris外設驅動(dòng)庫中的相應函數來(lái)完成。函數SysCtlPeripheralEnable()和GPIOPinTvpeCAN()可完成CAN模塊外設的端口初始化,CANSetBitTiming()可以設定波特率,本中的通訊波特率設定為1 MB/s,并且上的節點(diǎn)都設置成相同的波特率,canAcceptFilterSet()可完成驗收濾波設置。完成CAN節點(diǎn)的初始化之后,在任務(wù)taskican中每10 ms調用一次iCAN調度函數ICAN_Sche dul(),完成一次數據收發(fā)工作,同時(shí)將下位機節點(diǎn)采集的電壓電流值上傳至上位機并刷新顯示。
3.1.2 iCAN協(xié)議的消息處理
iCAN協(xié)議,即工業(yè)CAN-bus應用層協(xié)議。是由我國自主研發(fā)的CAN的高層應用協(xié)議,詳細的定義了CAN報文中ID以及數據的分配和應用,建立了一個(gè)統一的設備模型,定義了設備的I/O資源和訪(fǎng)問(wèn)規則,采用“連接,面向節點(diǎn)”的通訊方式,既支持主從方式通訊模式,又支持事件觸發(fā)通訊模式。系統中,上位機主節點(diǎn)的ID為0x01,下位機各節點(diǎn)的ID可以根據具體情況設定,范圍為0x00-0x3F。
節點(diǎn)中,數據的發(fā)送和接收是由微處理器集成的CAN控制器自動(dòng)完成。為滿(mǎn)足實(shí)時(shí)性的要求,數據的接收操作采用中斷方式。由于下位機節點(diǎn)數量較多,數據的發(fā)送接收量比較大,為了保證不丟失數據,這里了兩個(gè)深度為40字節的CAN報文緩沖區,分別用作發(fā)送和接收緩存。對緩沖區的操作,由函數canCirBufRead和函數canCirBufWrite來(lái)完成。而對于CAN消息的發(fā)送和接收由函數ICANTxMsgObjSend、canFr ameSend和ICANRxMsgObjExplain來(lái)完成。
CAN消息的發(fā)送接收流程圖如圖5所示。數據的發(fā)送調用函數ICANTxMsgObiSend,其中先按照iCAN協(xié)議規定的格式填寫(xiě)報文的ID和數據段,然后查詢(xún)緩沖區的狀態(tài),如果發(fā)送緩沖區未滿(mǎn),則調用canCirBufWrite將整合后的數據寫(xiě)入發(fā)送緩沖區,最后調用函數canFrameSend將數據發(fā)送到CAN上。

本文引用地址:http://dyxdggzs.com/article/148494.htm

c.JPG


接收采用中斷方式,當有中斷產(chǎn)生,即收到一幀數據,此時(shí)首先查詢(xún)接收緩沖區的狀態(tài),如果未滿(mǎn),則調用函數canCirBufWrite將接收到的數據寫(xiě)入接收緩沖區。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


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