您現(xiàn)在的位置:
中國(guó)傳動(dòng)網(wǎng)
>
技術(shù)頻道
>
應(yīng)用方案
>
基于C8051F040的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)
時(shí)間:2006-09-09 15:04:00來(lái)源:jiangf
上位機(jī)通過(guò)CAN適配卡與各個(gè)CAN節(jié)點(diǎn)通訊。在應(yīng)用中,上位機(jī)可以發(fā)送命令到節(jié)點(diǎn),收集數(shù)據(jù),修改過(guò)程參數(shù),各節(jié)點(diǎn)可以將采集到的數(shù)據(jù)送到上位機(jī)進(jìn)行復(fù)雜的數(shù)學(xué)計(jì)算或是保存打印,實(shí)現(xiàn)更加優(yōu)越的信息處理功能。
2 C8051F040的CAN控制器結(jié)構(gòu)
F040的所有CAN協(xié)議功能都由獨(dú)立的CAN控制器而不是由51處理器來(lái)完成。因此,CAN通信占用CPU帶寬很小,51處理器只需要通過(guò)特殊功能寄存器(SFR)配置CAN控制器,數(shù)據(jù)過(guò)濾器就可以了。
2.1 CAN控制器各部分功能
CAN Core:CAN協(xié)議控制器和發(fā)送/接收轉(zhuǎn)換寄存器;
Message RAM:存儲(chǔ)Message Objects和標(biāo)志碼,CAN控制器共有32個(gè)Message Object可供配置來(lái)用于發(fā)送或接收數(shù)據(jù);
Registers:用于控制和配置C_CAN模塊的所有寄存器;
Message Handler:控制數(shù)據(jù)在CAN Core的接收/發(fā)送轉(zhuǎn)換寄存器和Message Object之間的傳輸,以及中斷的產(chǎn)生。
2.2 CAN寄存器分類
CAN寄存器可分為以下4類:
(1)CAN控制器協(xié)議寄存器:用于CAN控制、中斷、錯(cuò)誤控制、總線狀態(tài)控制和測(cè)試模塊;
(2)信息目標(biāo)(Message Object)接口寄存器:配置32個(gè)信息目標(biāo)(Msg Obj),從目標(biāo)接收和發(fā)送數(shù)據(jù)。8051處理器通過(guò)他來(lái)讀寫CAN Message RAM;
(3)信息處理寄存器:只讀寄存器。為51CPU提供信息目標(biāo)的狀態(tài),如信息有效標(biāo)志,發(fā)送請(qǐng)求狀態(tài),新數(shù)據(jù)標(biāo)志和中斷標(biāo)志;
(4)C8051處理器特殊功能寄存器(SFR):C8051處理器控制的5個(gè)寄存器,直接讀寫CAN協(xié)議寄存器,通過(guò)CAN數(shù)據(jù)寄存器(CAN0DATH和CAN0DATL)和CAN地址寄存器(CAN0ADR)間接讀寫其他CAN控制器。
3 CAN節(jié)點(diǎn)的硬件設(shè)計(jì)
設(shè)計(jì)采用的接口芯片使用TI公司的3.3VCAN收發(fā)器SN65HVD230,他與PCA82C250的引腳兼容。SN65HVD230有3種工作模式:高速,傾斜和低功耗模式,由Rs腳的連接方式來(lái)確定。由于F040自帶了CAN控制器,外圍電路極為簡(jiǎn)潔。
4 CAN通訊軟件設(shè)計(jì)
為避免51 CPU讀寫Message RAM與CAN 信息收發(fā)之間產(chǎn)生沖突,CPU不直接讀寫Message Object,而是通過(guò)專門的寄存器(IFx Interface Registers)來(lái)配置信息目標(biāo)。
一個(gè)完整的信息目標(biāo)的結(jié)構(gòu)如表1所示。
CAN通訊協(xié)議的最大特點(diǎn)之一就是廢除了傳統(tǒng)的站地址編碼,而使用信息塊標(biāo)志碼。ID28-0,Xtd和Dir用來(lái)定義信息標(biāo)志碼,以及定義即將發(fā)送數(shù)據(jù)幀的類型(遠(yuǎn)程幀或標(biāo)準(zhǔn)幀),并且與Mask28-0,MXtd和Mdir一起用來(lái)作為將要接收數(shù)據(jù)幀的過(guò)濾器。一個(gè)已接收到的信息被放在有效的(MsgVal=1)、具有匹配標(biāo)志碼的Message Object里。只有當(dāng)Xtd=1時(shí),遠(yuǎn)程幀才被放入Message Object,Xtd=0時(shí),標(biāo)準(zhǔn)幀被放入Message Object。當(dāng)多于一個(gè)的有效Message object與收到的信息匹配,則該條信息被放入號(hào)碼最小的Message object里。Data0-Data7是8個(gè)數(shù)據(jù)字節(jié)。CAN通訊初始化和法數(shù)據(jù)幀的軟件流程如圖4所示。
CAN通訊軟件設(shè)計(jì)主要包括3個(gè)模塊:CAN通訊初始化、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)模塊。信息目標(biāo)的初始化程序代碼(C語(yǔ)言)如下:
當(dāng)微處理器接收數(shù)據(jù)采用中斷方式,接收Message Object初始化時(shí)將RxIE位置1。當(dāng)程序進(jìn)入到CAN中斷服務(wù)子程序時(shí),先判斷CAN狀態(tài)寄存器的RxOK位是否已置位,若已置位,則說(shuō)明CAN控制器已經(jīng)成功接收到一個(gè)數(shù)據(jù)幀(因?yàn)镃AN通訊有多個(gè)中斷源,而中斷向量只有一個(gè)),這時(shí)再調(diào)用相應(yīng)的函數(shù),取出數(shù)據(jù)幀中有用的字節(jié)進(jìn)行處理或執(zhí)行相應(yīng)的操作。源程序代碼如下:
5 結(jié)語(yǔ)
C8051F040是完全集成的混合信號(hào)系統(tǒng)級(jí)單片機(jī),具有與8051指令集完全兼容的CIP-51內(nèi)核,代表了8位單片機(jī)的發(fā)展方向。他不但集成了構(gòu)成監(jiān)控系統(tǒng)的常用外設(shè),而且還集成了高可靠性、高性能的CAN總線控制模塊。本文使用該芯片設(shè)計(jì)的CAN節(jié)點(diǎn)模塊集成度高、性能穩(wěn)定,實(shí)時(shí)性好、軟件設(shè)計(jì)簡(jiǎn)潔,在工業(yè)生產(chǎn)和儀器開發(fā)領(lǐng)域具有廣泛的應(yīng)用前景。本文給出的硬件和軟件設(shè)計(jì)方案均已通過(guò)實(shí)際測(cè)試,并成功運(yùn)用于大洋協(xié)會(huì)“十五”攻關(guān)項(xiàng)目:小型底棲生物標(biāo)本自動(dòng)分離系統(tǒng)的通訊模式中。
標(biāo)簽:
傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動(dòng)網(wǎng)(m.y3602.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>勇梅機(jī)械液壓閘門給煤機(jī)的優(yōu)點(diǎn)
2025-10-22
2025-10-17
2025-10-11
「一體機(jī)性價(jià)比王者」NK290M普及型數(shù)控...
2025-10-09
耐磨管道機(jī)器人檢測(cè)電纜CCTV,水下管道...
2025-09-23
影視舞臺(tái)燈光低煙無(wú)鹵扁平電纜13*4+2*(2...
2025-09-23