《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應用 > C8051F040的車用CAN總線智能節(jié)點設(shè)計
C8051F040的車用CAN總線智能節(jié)點設(shè)計
王治國 高玉峰 劉亞龍 呂雪蓮
摘要: C8051F040的車用CAN總線智能節(jié)點設(shè)計,為了解決傳統(tǒng)設(shè)計方法帶來的問題,現(xiàn)代車輛廣泛采用了綜合電子系統(tǒng)。總線是綜合電子系統(tǒng)的基礎(chǔ),CAN總線由于具有多種優(yōu)點,在綜合電子系統(tǒng)中得到了廣泛應用。文章詳細介紹了一種以C8051F040單片機為核心的CAN總線智能節(jié)點的設(shè)計方法,給出了硬件原理圖和軟件流程圖。該智能節(jié)點已經(jīng)應用于某車輛模擬教學系統(tǒng),應用情況良好。
關(guān)鍵詞: 51單片機 C8051F040 收發(fā)器
Abstract:
Key words :

電氣與電子系統(tǒng)是車輛的重要組成部分,其工作狀態(tài)直接影響車輛的性能。按照傳統(tǒng)設(shè)計思想設(shè)計車輛電氣系統(tǒng)時,往往采取堆積各種子系統(tǒng)的途徑來提高系統(tǒng)的性能,因此車輛內(nèi)部各子系統(tǒng)之間單純面向任務(wù)而不考慮與全局的關(guān)系。隨著子系統(tǒng)及裝置數(shù)量不斷增加,傳統(tǒng)設(shè)計方法遇到了一系列問題:線路增多、布線復雜、電磁干擾增加、系統(tǒng)可靠性下降、檢查維修困難等。為了解決上述問題,現(xiàn)代車輛采用了綜合電子系統(tǒng)??偩€是綜合電子系統(tǒng)的基礎(chǔ),通過總線節(jié)點,綜合電子系統(tǒng)可采集、使用、分配和共享車內(nèi)所有電子系統(tǒng)的各種信息,達到弱化矛盾、增強整體功能的目的。CAN總線由于具有性價比高、可靠性高、實時性好、靈活性強等特點,得到廣泛應用。本文針對CAN總線,提出了一種基于C8051F040" title="C8051F040">C8051F040的通用總線智能節(jié)點的設(shè)計方法。

1 總體設(shè)計
   
本文采用C8051F040單片機作為智能節(jié)點的主控芯片來設(shè)計CAN總線通用智能節(jié)點。智能節(jié)點通過現(xiàn)場信號調(diào)整、高速數(shù)據(jù)采集獲取該節(jié)點下設(shè)備的參數(shù),并通過總線收發(fā)器" title="收發(fā)器">收發(fā)器將數(shù)據(jù)發(fā)送到CAN總線,同時根據(jù)參數(shù)及總線上的其他信息和命令對設(shè)備進行控制。通過CAN總線智能節(jié)點,可將車輛電氣系統(tǒng)各子系統(tǒng)及設(shè)備緊密聯(lián)系在一起,構(gòu)成一個實時控制網(wǎng)絡(luò),如圖1所示。


    考慮到智能節(jié)點的通用性,經(jīng)過對車輛各子系統(tǒng)和設(shè)備參數(shù)進行分析,確定了智能節(jié)點主要指標。
    ①信號輸入:8路模擬信號輸入,16路數(shù)字信號輸入,2路脈沖量輸入;
    ②控制信號輸出:2路模擬控制信號輸出,8路數(shù)字信號輸出;
    ③CAN總線接口:1個CAN總線接口(支持CAN2.0A和CAN2.0B)。

2 硬件設(shè)計
   
CAN總線節(jié)點有兩種設(shè)計方法,一種采用通用微控制器結(jié)合獨立CAN控制器加上收發(fā)器,另一種采用集成CAN控制器的微控制器結(jié)合CAN收發(fā)器。本文采用第二種設(shè)計方法,選用1片C8051F040單片機作為智能節(jié)點的主控芯片。主控芯片內(nèi)部集成CAN控制器,兼容CAN2.0A和CAN2.0B,配合總線收發(fā)器后可完成CAN通信。此外,主控芯片還使用內(nèi)部集成的A/D轉(zhuǎn)換器完成對模擬信號的采集,同時向被控設(shè)備輸出模擬和數(shù)字控制信號。主控芯片各種資源的相關(guān)情況見參考文獻。
    智能節(jié)點的硬件系統(tǒng)包括:模擬信號采集電路、開關(guān)信號采集電路、開關(guān)信號輸出、LCD電路、CAN總線電路等。硬件原理框圖如圖2所示。


2.1 模擬信號采集電路
   
模擬信號采集電路用于采集受控設(shè)備輸出的模擬信號。該電路由模擬信號調(diào)整電路、SPI總線A/D轉(zhuǎn)換器MCP3208、高速光電耦合器2801以及外圍電路組成,其電路原理圖如圖3所示。


    模擬信號調(diào)整電路可用于測量模擬電壓信號、模擬電流信號以及電阻信號。以連接到MCP3208第1通道的電路為例:當R2斷開,R4和R1連接適當阻值的電阻時,該電路可用于測量模擬電壓信號;當R2斷開,R4短路,R1連接采樣電阻時,該電路可用于測量模擬電流信號;當R1斷開,R4短路,R2連接適當阻值的電阻時,該電路可用于測量電阻信號。R5與二極管D1和D2組成保護電路。R6、R9及C4組成分壓和濾波電路。
    為了保證系統(tǒng)穩(wěn)定、可靠工作,控制模塊的數(shù)字地與模擬地嚴格分開。因此,模塊沒有使用C8051F040內(nèi)部集成的A/D轉(zhuǎn)換器,而是使用外部SPI總線A/D轉(zhuǎn)換器MCP3208。MCP3208是12位逐次逼近型模/數(shù)轉(zhuǎn)換器,具有片上采樣和保持電路。該A/D轉(zhuǎn)換器使用與SPI協(xié)議兼容的簡單串行端口與主控芯片相連,轉(zhuǎn)換速率可高達100 ksps。主控芯片C8051F040是8位單片機,其SPI端口要求以8位數(shù)據(jù)為一組來收發(fā)數(shù)據(jù)。同時,為了與MCP3208通信,將主控芯片SPI口設(shè)置為主方式,時鐘下降沿輸出數(shù)據(jù),時鐘上升沿鎖存數(shù)據(jù)。
    設(shè)計中,8路模擬信號經(jīng)調(diào)整后與MCP3208的8個模擬輸入端相連。A/D轉(zhuǎn)換器的電源與參考電壓輸入端通過電感L1與5 V電源相連,模擬地通過電感L2與5 V電源地相連,以減小電源擾動對A/D轉(zhuǎn)換的影響。同時,MCP3208的SPI接口與單片機之間也使用光電耦合器隔離,從而保證數(shù)字地與模擬地嚴格分開。圖中只給出了MOSI與MISO光耦隔離的原理圖,SCLK與CS隔離的原理相同。
2.2 開關(guān)信號采集電路
   
開關(guān)信號采集電路用于采集受控設(shè)備輸出的開關(guān)信號。該電路由光電耦合器2801及其外圍電路組成,其電路原理圖如圖4所示。當外部開關(guān)信號的高電平信號接于開關(guān)信號采集電路輸入端時,光耦內(nèi)部發(fā)光二極管工作,光敏三極管導通,光電耦合器輸出低電平信號。主控芯片通過I/0口掃描光電耦合器輸出端即可采集開關(guān)信號。R1、R2、C1組成輸入分壓濾波電路。


2.3 CAN總線接口電路
   
由于C805lF040內(nèi)部集成了CAN總線控制器,外電路中只要設(shè)置總線收發(fā)器即可完成通信。CAN總線接口電路用于完成CAN總線通信,由總線收發(fā)器VP251、光電耦合器0211及外圍電路組成,其電路原理圖如圖5所示。


    CAN總線接口電路采用VP251作為總線收發(fā)器,該收發(fā)器主要用于單端信號與差動信號之間的相互轉(zhuǎn)換。此外,單片機最小控制電路與總線收發(fā)器之間采用光電耦合器隔離,以提高系統(tǒng)工作的可靠性。光電耦合器采用2片高速光耦O211,1片用于接收,1片用于發(fā)送。
2.4 開關(guān)信號輸出電路
   
開關(guān)信號輸出電路用于向外部被控對象輸出驅(qū)動信號。該電路由光電耦合器2801組成,其電路原理圖如圖6所示。當開關(guān)信號輸出電路接收到低電平信號時,光耦內(nèi)部發(fā)光二極管工作,光敏三極管導通,光電耦合器輸出低電平信號。


2.5 電源電路
   
電源電路用于向其他功能電路供電。電源由輸入濾波器CXDB2、電源模塊PWB2405、三端穩(wěn)壓器AMS1117及外圍電路組成,其電路原理圖如圖7所示。


    為了限制傳導干擾,電源模塊使用電磁干擾(EMI)濾波器CXDB2來抑制電源輸入中的傳導噪聲。輸入電源經(jīng)過濾波后送入2個獨立的電源模塊PWB2405中獲得3組5 V電源。5V-2為模擬信號輸入與A/D轉(zhuǎn)換電路提供電源,5V-1向CAN總線收發(fā)器供電,5VG為模擬電源,地。VCC為采用5 V電壓的數(shù)字電路提供電源,同時向三端穩(wěn)壓器模塊AMSlll7提供電源。AMSlll7將VCC轉(zhuǎn)換為2組3.3 V電源,3.3 V-1為C8051F040內(nèi)部A/D轉(zhuǎn)換器提供電源和參考電壓,3.3V-2為單片機最小控制電路提供數(shù)字電源。

3 軟件設(shè)計
3.1 主程序

    主程序流程如圖8所示。智能節(jié)點上電后,主程序首先完成系統(tǒng)初始化,主要內(nèi)容包括:初始化I/0口、A/D轉(zhuǎn)換器、SPI總線、LCD、CAN總線等,然后進入循環(huán)工作狀態(tài)。程序采用掃描方式完成模擬信號采集和開關(guān)信號采集。采集得到的數(shù)據(jù)經(jīng)過濾波、補償?shù)确绞教幚砗螅ㄟ^CAN通信子程序發(fā)送到CAN總線。此外,循環(huán)工作過程中,系統(tǒng)還會通過LCD子程序顯示相關(guān)信息。


3.2 信號采集程序
   
智能節(jié)點信息采集量較大,如何實現(xiàn)對多種、多路信號實時采集是系統(tǒng)設(shè)計的關(guān)鍵。電氣系統(tǒng)典型信號主要包括模擬信號、開關(guān)信號等。
    采集模擬信號時,利用外部12位A/D轉(zhuǎn)換器,采用軟件查詢的方式采集模擬信號并進行數(shù)字濾波處理。由于所要采集的模擬信號較多,因此必須實現(xiàn)采集通道動態(tài)切換;采用定時掃描C8051F040數(shù)字I/O口的方法采集數(shù)字信號。
3.3 CAN通信程序
   
C8051F040內(nèi)部的CAN控制器集成了用于接收及發(fā)送的所有硬件,與使用外部CAN控制器相比,可以大大減少占用CPU的時間。CAN總線接收采用中斷方式完成,發(fā)送采用查詢方式完成。CAN總線接收和發(fā)送的流程如圖9所示。



4 結(jié)論
   
本文提出了一種基于C8051F040單片機的CAN總線智能節(jié)點設(shè)計方案。通過該智能節(jié)點能夠?qū)崿F(xiàn)設(shè)備的數(shù)據(jù)采集與控制,而且根據(jù)需要加入適當算法后,還可以實現(xiàn)智能控制和故障診斷等功能。該智能節(jié)點已應用于某型車輛的模擬教學平臺中,通過由16個節(jié)點組成的CAN控制網(wǎng)絡(luò)完成了對整個平臺設(shè)備的綜合控制,性能良好。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。