當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]介紹了一種用單片機(jī)ADμC812、CAN總線控制器SJA1000和CAN總線驅(qū)動器POA82C250組成的CAN總線智能節(jié)點的設(shè)計方案,給出了該節(jié)點的硬件結(jié)構(gòu)和軟件設(shè)計方法,同時介紹了CAN總線的主要特點。

   摘要:介紹了一種用單片機(jī)ADμC812、CAN總線控制器SJA1000和CAN總線驅(qū)動器POA82C250組成的CAN總線智能節(jié)點的設(shè)計方案,給出了該節(jié)點的硬件結(jié)構(gòu)和軟件設(shè)計方法,同時介紹了CAN總線的主要特點。

    關(guān)鍵詞:CAN總線ADμC812;數(shù)據(jù)采集卡

1 引言

CAN(Controller Area Network)總線協(xié)議最初是以研發(fā)和生產(chǎn)汽車電子產(chǎn)品著稱的德國BOSCH公司開發(fā)的,它是一種支持分布式實時控制系統(tǒng)的串行通信局域網(wǎng)。目前,CAN總線以其高性能、高可靠性、實時性等優(yōu)點,而被廣泛應(yīng)用于控制系統(tǒng)中的檢測和執(zhí)行機(jī)構(gòu)之間的數(shù)據(jù)通信中。CAN總線具有以下一些技術(shù)特性:

●多主方式工作,采用非破壞性的基于優(yōu)先權(quán)的總線仲裁技術(shù);

●借助接收濾波可實現(xiàn)多地址的幀傳送;

●數(shù)據(jù)采用短幀結(jié)構(gòu),抗干擾性強(qiáng),數(shù)據(jù)幀的信息CRC校驗及其它錯誤檢測措施完善;

●發(fā)送期間丟失仲裁或由于出錯而遭破獲的幀可以自動重發(fā);

●嚴(yán)重錯誤時可自動關(guān)閉總線功能,以使總線其它操作不受影響。

    CAN總線符合ISO11898標(biāo)準(zhǔn),最大傳輸速率為1MB/s時?傳輸距離最大為40m;傳輸速率為5kB/s時的最大傳輸距離為10km。CAN總線的傳輸介質(zhì)可為雙絞線、同軸電纜等。由于CAN總線是一種很有發(fā)展前景的現(xiàn)場總線,因此?得到了國際上很多大公司的支持,加之基于CAN總線的硬件接口簡單,編程方便,系統(tǒng)容易集成。因此?它特別適用于系統(tǒng)分布比較分散、實時性要求高、現(xiàn)場環(huán)境干擾大的場合。

2 系統(tǒng)結(jié)構(gòu)

由于CAN總線采用多主方式工作,所以它具有與DCS控制系統(tǒng)不一樣的拓?fù)浣Y(jié)構(gòu)。其控制系統(tǒng)的構(gòu)成由計算機(jī)和智能節(jié)點組成,圖1所示是其系統(tǒng)結(jié)構(gòu)。該系統(tǒng)最大的特點就是所有的節(jié)點(包括上位PC機(jī))都能以平等的地位掛接在總線上。一個CAN總線節(jié)點通常至少包括三個部分,即負(fù)責(zé)節(jié)點任務(wù)控制的單片機(jī)、CAN總線控制器以及CAN總線收發(fā)器。本文給出的就是一個可完成數(shù)據(jù)采集功能的CAN節(jié)點的設(shè)計方法。

3?。茫粒喂?jié)點的硬件設(shè)計

本CAN節(jié)點的電路原理簡圖如圖2所示。該電路的三個核心器件是單片機(jī)ADμC812?1?、獨立的CAN總線控制器SJA1000和CAN總線驅(qū)動器PCA82C250。其中SJA1000?2?和PCA82C250兩者的組合應(yīng)用已經(jīng)在很多CAN總線節(jié)點的設(shè)計中用到,而本設(shè)計的特點就在于,它是根據(jù)要完成數(shù)據(jù)采集功能這一具體要求來選用微控制器ADμC812。圖2中的串行接口芯片MAX232作為ADμC812與PC機(jī)的串口連接,它的使用是由該單片機(jī)的調(diào)試特點決定的。

ADμC812是高度集成、高精度12位數(shù)據(jù)采集系統(tǒng),該產(chǎn)品在其內(nèi)核中集成了帶有片內(nèi)可重編程非易失性閃速/電擦除程序存儲器的高性能8位(與8051兼容)MCU和多通道(8個輸入通道)12位ADC。

由于ADμC812只需要通過其串口模塊和計算機(jī)的串口進(jìn)行連接,而不需要額外的仿真器,因而可利用ADI公司的QUICKSTART軟件來實現(xiàn)程序的在線下載、在線調(diào)試和在線仿真,從而極大地提高了工作效率。這也是本設(shè)計使用MAX232的原因。

該系統(tǒng)在工作時,首先將從前面?zhèn)鞲衅魉蛠淼墓I(yè)標(biāo)準(zhǔn)信號(4~20mA或1~5V)通過調(diào)理電路變?yōu)椋啊玻担值哪M電壓信號輸入至ADμC812的P0.0~P0.7 (AD0~AD7)引腳(根據(jù)實際情況確定所需AD端口的數(shù)量),然后通過程序控制,再將A/D轉(zhuǎn)換所得的數(shù)字信息通過SJA1000和PCA82C250送到CAN總線上的相關(guān)節(jié)點。

SJA1000作為微控制器的片外擴(kuò)展芯片,其片選引腳CS應(yīng)接在微控制器的P2.0上,以用于決定CAN控制器各寄存器的地址。SJA1000通過CAN總線驅(qū)動器PCA82C250連接在物理總線上。PCA82C250器件可提供對總線的差動發(fā)送能力和對CAN控制器的差動接受能力,它同時完全和“ISO11898”標(biāo)準(zhǔn)兼容。為進(jìn)一步提高系統(tǒng)的抗干擾能力,一般在CAN總線控制器SJA1000和CAN總線驅(qū)動器PCA82C250之間加接6N137光電隔離芯片,只不過在圖2中沒有表示出來。由于通信信號傳輸?shù)綄?dǎo)線的端點時會發(fā)生反射,而且反射信號會干擾正常信號的傳輸,因此,總線兩端應(yīng)接有終端電阻R1、R2,以消除反射信號,其阻值應(yīng)當(dāng)與傳輸電纜的特性阻抗大致相當(dāng)。

4?。茫粒喂?jié)點的軟件設(shè)計

本節(jié)點的軟件編程主要包括A/D轉(zhuǎn)換(ADC)、CAN控制器的初始化、CAN總線數(shù)據(jù)的發(fā)送和接收等幾個部分。主程序的流程圖如圖3所示。

下面分別對這幾個主要部分的程序設(shè)計做一介紹。

4.1 A/D轉(zhuǎn)換部分

筆者在本設(shè)計中采用的是單步A/D轉(zhuǎn)換模式,并將A/D轉(zhuǎn)換結(jié)果存入指定的數(shù)據(jù)存儲區(qū)。具體步驟如下:

(1)通過設(shè)置ADC控制寄存器(ADCCON1和ADCCON2)的值來確定A/D轉(zhuǎn)換的工作狀態(tài)和采樣通道號;

(2)使能ADC中斷,置位SCONV位以啟動單步A/D轉(zhuǎn)換;

(3)等待響應(yīng)ADC中斷,并進(jìn)入中斷服務(wù)程序;

(4)把采樣所得的數(shù)據(jù)從ADCDATAL和ADC-DATAH兩個特殊寄存器中取出,并存入預(yù)設(shè)的片內(nèi)數(shù)據(jù)存儲器中,然后退出中斷服務(wù)程序;

(5)判斷所需通道是否采樣完畢,如果未完成,則設(shè)置采樣通道號并返回步驟(2),若完成則退出A/D轉(zhuǎn)換子程序。

通過該程序可隨時根據(jù)實際需要更改采樣通道數(shù),并將采樣結(jié)果直接存入指定數(shù)據(jù)存儲區(qū),以為今后向CAN總線發(fā)送所得數(shù)據(jù)提供便利。

4.2 SJA1000的初始化

CAN的通信協(xié)議主要是由CAN控制器完成的,因此,要想實現(xiàn)CAN節(jié)點的數(shù)據(jù)傳送,對CAN控制器的初始化是十分關(guān)鍵的。這個步驟直接決定著該CAN網(wǎng)絡(luò)系統(tǒng)各節(jié)點所共同遵守的協(xié)議。對SJA1000進(jìn)行初始化實際上就是通過單片機(jī)向其片內(nèi)的各個寄存器寫入控制字的過程,其寄存器包括以下幾個:

REG CONTROL—內(nèi)部控制寄存器地址;

REG COMMAND—內(nèi)部命令寄存器地址;

REG STATUS —內(nèi)部狀態(tài)寄存器地址;

REG INTERRUPT—內(nèi)部中斷寄存器地址;

REG ACR—內(nèi)部驗收代碼寄存器地址;

REG AMR—內(nèi)部驗收屏蔽寄存器地址;

REG BTR0—總線定時寄存器0;

REG BTR1—總線定時寄存器1;

REG OCR—輸出控制寄存器。

其中:BTR0、BTR1寄存器的內(nèi)容可用于決定系統(tǒng)通信的波特率和CAN協(xié)議物理層中的同步跳轉(zhuǎn)寬度,因此,對于一個系統(tǒng)中的所有節(jié)點,這兩個寄存器的內(nèi)容必須相同(包括上位機(jī)),否則將無法進(jìn)行通信;OCR寄存器的內(nèi)容用于決定CAN控制器的輸出方式;而寫入ACR、AMR寄存器的內(nèi)容則要根據(jù)實際的網(wǎng)絡(luò)系統(tǒng)和報文標(biāo)志符來決定。本設(shè)計中,筆者采用的是BasicCAN模式。

完成初始化后,CAN控制器就能正常運(yùn)行了,但是要實現(xiàn)具體的數(shù)據(jù)收發(fā)任務(wù),還必須編制特定的收、發(fā)程序。

4.3 CAN總線數(shù)據(jù)的發(fā)送和接收

(1)發(fā)送部分的程序設(shè)計

用CAN總線發(fā)送數(shù)據(jù)的流程圖如圖4所示。實際上,在程序運(yùn)行過程中,常常會在發(fā)送某一幀數(shù)據(jù)時發(fā)現(xiàn)上一幀的數(shù)據(jù)還沒有完全發(fā)送完畢(可以通過查詢狀態(tài)寄存器REG STATUS的第4位BIT TCS的顯、隱狀態(tài)可了解上次數(shù)據(jù)的發(fā)送情況)。因此,筆者采用的處理方法是:通過指令啟動本次發(fā)送之后,就不停地查詢狀態(tài)寄存器,以判斷本次發(fā)送是否完成,直到確定完成為止。這樣可以為下次發(fā)送提供便利,同時也有利于程序的順利執(zhí)行,從而避免出現(xiàn)錯誤。

(2)接收部分的程序設(shè)計

圖5所示是該系統(tǒng)接收部分的軟件流程圖。

實際上,在對響應(yīng)速度要求不太高的場合,以查詢方式來設(shè)計接收子程序是最簡單、最可靠的方式。如果總線上有數(shù)據(jù)發(fā)往本節(jié)點,則通過查詢狀態(tài)寄存器的第1位BIT_RBS的位狀態(tài),便可得知接收緩沖區(qū)(RXFIFO)中的可用信息,然后通過軟件將RXFIFO中的數(shù)據(jù)逐個“移入”到指定的片內(nèi)存儲空間即可。對于這樣一個主要以數(shù)據(jù)采集功能為主的CAN節(jié)點,這些數(shù)據(jù)多半是由CAN網(wǎng)絡(luò)中的“控制中心”發(fā)來的控制信號,設(shè)計時把它們留給ADμC812進(jìn)一步處理就可以了。

還應(yīng)注意的是:在接收查詢過程中,要“觀察”是否有總線關(guān)閉、總線出錯、接收緩沖器超載等狀態(tài),如果有的話,必須要進(jìn)行相應(yīng)的“錯誤”處理,否則也不能正常進(jìn)行數(shù)據(jù)接收,還有一個問題是關(guān)于遠(yuǎn)程幀的處理。限于篇幅,本文不作介紹。

5 結(jié)束語

實踐證明:本文所介紹的CAN總線智能節(jié)點能夠很好地實現(xiàn)對工業(yè)標(biāo)準(zhǔn)模擬輸出信號的采集以及與CAN總線上其它節(jié)點的通信。由于該節(jié)點是基于單片機(jī)ADμC812開發(fā)的,因此它的體積小巧且擴(kuò)展靈活。筆者相信,基于該單片機(jī)的各種總線節(jié)點一定會得到廣泛的應(yīng)用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉