<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è) > 汽車(chē)電子 > 設計應用 > 基于CAN總線(xiàn)的客車(chē)輕便換檔系統設計與實(shí)現

基于CAN總線(xiàn)的客車(chē)輕便換檔系統設計與實(shí)現

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

  2.2 系統軟件設計

  實(shí)際應用對系統的實(shí)時(shí)性與可靠性要求較高,在軟件設計中采用了多任務(wù)實(shí)時(shí)操作系統μC/OS-Ⅱ的編程方法,即將應用程序分解為若干個(gè)獨立的進(jìn)程,再另外創(chuàng )建一個(gè)監控進(jìn)程,監視各個(gè)進(jìn)程的運行情況,這樣就保證系統運行的實(shí)時(shí)性和可靠性[2]。

  系統采用Keil C51編譯器,結合所用單片機P89C591的技術(shù)特點(diǎn),移植一個(gè)支持P89C591的μC/OS-Ⅱ操作系統的工作內容包括:

  (1) 在OS_CPU.H中用#define設置一個(gè)常量值用于控制任務(wù)堆棧的增長(cháng)方向。

  (2) 在OS_CPU.H中聲明10個(gè)數據類(lèi)型。

  (3) 在OS_CPU.H中用#define定義3個(gè)宏。

  (4) 在OS_CPU.C中編寫(xiě)6個(gè)簡(jiǎn)單的C語(yǔ)言函數,即初始化任務(wù)堆棧、任務(wù)創(chuàng )建鉤掛函數、任務(wù)刪除鉤掛函數、任務(wù)切換鉤掛函數、統計任務(wù)鉤掛函數和定時(shí)鉤掛函數。

  (5) 在OS_CPU_A.ASM中編寫(xiě)4個(gè)匯編語(yǔ)言函數。

系統共需創(chuàng )建4個(gè)任務(wù),系統任務(wù)分配情況如圖4所示。

  掃描任務(wù)定時(shí)掃描的各寄存器,用于接收前置節點(diǎn)發(fā)送的手柄位置信號。

  顯示任務(wù)主要擔任顯示、刷新等職責,用于調試過(guò)程中觀(guān)察動(dòng)作的完成情況。

  系統主任務(wù)用于執行數據的邏輯分析判斷及超限報警等功能。數據采集任務(wù)將實(shí)時(shí)掃描各個(gè)數據采集端口,用于采集車(chē)速,發(fā)動(dòng)機轉速等參數。

  主函數負責系統的初始化以及任務(wù)的創(chuàng )建、啟動(dòng)等。

  各個(gè)任務(wù)之間通過(guò)信號量、消息隊列等途徑可以相互通信,以保證任務(wù)執行得實(shí)時(shí)與同步。

3 系統通信機制設計

  輕便對通信系統的要求是:數據傳輸可靠,實(shí)時(shí)性高,傳輸速率高,誤碼率低[3]。作為一種有效支持分布式控制或實(shí)時(shí)控制的串行通信網(wǎng)絡(luò ),具有很強的靈活性、簡(jiǎn)單的擴展可能性、優(yōu)良的通信實(shí)時(shí)性以及通信的可靠性和檢錯能力,能夠應用于各種苛刻的電子環(huán)境,已經(jīng)成為汽車(chē)的首選網(wǎng)絡(luò )通訊總線(xiàn)形式。

  CAN總線(xiàn)的模型結構只有3層:物理層、數據鏈路層和應用層,傳輸介質(zhì)為雙絞線(xiàn),通信速率最高可達1 Mb/s(40 m),其通信方式靈活,無(wú)需站地址等節點(diǎn)信息,采用非破壞性總線(xiàn)仲裁技術(shù),滿(mǎn)足實(shí)時(shí)要求。

  在研究CAN 2.0B規范的基礎上,采用自定義通訊協(xié)議的方案實(shí)現了系統前后兩個(gè)節點(diǎn)的通訊。前節點(diǎn)發(fā)出命令,后節點(diǎn)接收后不發(fā)確認信號,前節點(diǎn)收到后節點(diǎn)的信息后判斷是否正確,如果不正確或在規定的時(shí)間內收不到,則重新發(fā)命令,重發(fā)超過(guò)規定的次數為通訊故障;后節點(diǎn)發(fā)出信息,前節點(diǎn)接收后不發(fā)確認信息,前節點(diǎn)在規定的時(shí)間內收不到則為通訊故障。節點(diǎn)數據幀基本結構定義如下:

系統中每個(gè)節點(diǎn)數據幀用ID區別,每個(gè)節點(diǎn)可定義多個(gè)不同的數據幀,用以傳送不同的信息。

  系統抗干擾設計 

  系統將從軟硬件兩方面采取措施,綜合防止干擾對單片機系統工作的影響。

  硬件方面主要是切斷來(lái)自傳輸通道和電源線(xiàn)的干擾,設計中通過(guò)濾波電容、光電耦合器的應用以及合理的元件布局和布線(xiàn),有效地抑制分布電容的干擾、電磁互感、漏磁的干擾等,同時(shí)PCB板科學(xué)的接地,很好地解決信號完整性問(wèn)題,改善了PCB板的電磁兼容性(EMC)。

  軟件方面則是通過(guò)指令冗余、軟件陷阱和看門(mén)狗技術(shù)來(lái)保證程序的正常運轉,有效地解決了程序運行過(guò)程中的跑飛和死循環(huán)問(wèn)題。

5 結 語(yǔ)

  將手動(dòng)換檔改為電控輕便換檔,使車(chē)輛得到了更為出色的換檔舒適性與經(jīng)濟性,徹底實(shí)現客車(chē)換檔的轎車(chē)化,既保留了機械變速器效率高、成本低、結構簡(jiǎn)單的優(yōu)點(diǎn),又充分利用了電控響應速度快,可控性高的特性,符合汽車(chē)技術(shù)電子化、智能化、人性化的發(fā)展方向。

  本文創(chuàng )新點(diǎn)在于摒棄以往單片機系統軟件編程的單任務(wù)模式,采用嵌入式實(shí)時(shí)多任務(wù)操作系統μC/OS-Ⅱ的編程方法,使系統的實(shí)時(shí)性得到更大提高。經(jīng)實(shí)踐證明,系統運行可靠,通訊正常,并達到了較高的性能指標。系統只需要進(jìn)行少量的調整,就能適用于各類(lèi)型的客車(chē),具有廣闊的發(fā)展和應用前景。


上一頁(yè) 1 2 下一頁(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>