當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于CAN總線智能數(shù)據(jù)采集模塊設(shè)計(jì)

引言

基于集中管理、分散控制的分散控制系統(tǒng)(distributed control system)解決了集中式直接數(shù)字控制系統(tǒng)對(duì)控制器處理能力和可靠性要求過(guò)高的缺陷,但由于其具有一定的封閉性、各分散控制系統(tǒng)之間的不兼容性,集散控制系統(tǒng)難以實(shí)現(xiàn)網(wǎng)絡(luò)互連和信息共享。

現(xiàn)場(chǎng)總線的出現(xiàn)使得全數(shù)字化,全開(kāi)放式,具有可互操作性,徹底分散的現(xiàn)場(chǎng)總線控制系統(tǒng)(fieldbus control system)得以實(shí)現(xiàn),現(xiàn)場(chǎng)總線控制系統(tǒng)已成為自動(dòng)化領(lǐng)域中的一個(gè)熱點(diǎn),也將成為工業(yè)過(guò)程控制的一個(gè)重要發(fā)展方向。

控制器局域網(wǎng)CAN(controller areanet work)是德國(guó)Bosch公司在現(xiàn)代汽車電子技術(shù)領(lǐng)域中推出的一種多主控制器局域網(wǎng)絡(luò)技術(shù),能有效支持分布式和實(shí)時(shí)控制,最早主要應(yīng)用于汽車內(nèi)部電子監(jiān)測(cè)和控制器件數(shù)據(jù)通信。由于其高可靠性及高實(shí)時(shí)性而廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)控制等領(lǐng)域。其突出的特點(diǎn)是采用最長(zhǎng)8個(gè)數(shù)據(jù)字節(jié)的短幀結(jié)構(gòu),傳輸時(shí)間短,實(shí)時(shí)性高;另外CAN協(xié)議取消了傳統(tǒng)的地址編碼概念,取而代之的是基于數(shù)據(jù)塊標(biāo)識(shí)符的無(wú)損優(yōu)先級(jí)仲裁,給分布式控制系統(tǒng)實(shí)現(xiàn)模塊間的信息共享帶來(lái)了極大的方便。

基于CAN總線的主要特點(diǎn)及發(fā)展趨勢(shì),我校電液實(shí)驗(yàn)室開(kāi)放式電液伺服控制系統(tǒng)的改造中采用CAN總線作為現(xiàn)場(chǎng)總線標(biāo)準(zhǔn),構(gòu)建了一套基于CAN總線智能節(jié)點(diǎn)的現(xiàn)場(chǎng)總線控制系統(tǒng)。文中將詳細(xì)介紹智能數(shù)據(jù)采集模塊的軟硬件設(shè)計(jì),該模塊可以實(shí)現(xiàn)控制現(xiàn)場(chǎng)的數(shù)字、模擬信號(hào)采集,現(xiàn)場(chǎng)數(shù)據(jù)預(yù)處理,數(shù)據(jù)傳送以及與監(jiān)控計(jì)算機(jī)通訊等功能。

液壓伺服系統(tǒng)簡(jiǎn)介

開(kāi)放式電液伺服控制系統(tǒng)包括數(shù)臺(tái)電液伺服位置控制實(shí)驗(yàn)臺(tái)、電液比例轉(zhuǎn)速控制實(shí)驗(yàn)臺(tái)、電液比例力控制實(shí)驗(yàn)臺(tái)。各實(shí)驗(yàn)臺(tái)配置1套基于CAN總線的智能數(shù)據(jù)采集模塊和內(nèi)置控制算法的智能控制模塊,通過(guò)CAN總線將各分散的采集模塊和控制模塊組成一個(gè)控制網(wǎng)絡(luò),1臺(tái)PC機(jī)通過(guò)內(nèi)置的CAN適配卡接入局部網(wǎng)絡(luò),模擬工業(yè)現(xiàn)場(chǎng)的過(guò)程控制,PC機(jī)作為擔(dān)任過(guò)程控制監(jiān)控任務(wù)的控制站,可以實(shí)時(shí)顯示各實(shí)驗(yàn)臺(tái)工作狀況及向各實(shí)驗(yàn)臺(tái)發(fā)送啟停命令,同時(shí)還可以通過(guò)高速以太網(wǎng)將現(xiàn)場(chǎng)數(shù)據(jù)遠(yuǎn)程傳輸至工程師站等管理級(jí)計(jì)算機(jī),實(shí)現(xiàn)如圖1所示的分層現(xiàn)場(chǎng)總線控制系統(tǒng)。

圖1 開(kāi)放式電液伺服控制系統(tǒng)總體結(jié)構(gòu)

系統(tǒng)硬件設(shè)計(jì)

數(shù)據(jù)采集模塊作為一種智能化現(xiàn)場(chǎng)儀表,主要包括硬件系統(tǒng)和控制軟件2大部分。模塊硬件部分以80C196KC單片機(jī)作為采集模塊的核心,外圍電路主要包括CAN總線接口,程序存儲(chǔ)器,電源監(jiān)控及復(fù)位電路,GAL譯碼電路,DI、A/D轉(zhuǎn)換電路及模塊參數(shù)設(shè)置電路等。模塊結(jié)構(gòu)如圖2所示。

圖2 數(shù)據(jù)采集模塊結(jié)構(gòu)

80C196KC單片機(jī)簡(jiǎn)介

80C196KC是Intel公司推出的高性能16位單片機(jī)。和MCS51系列單片機(jī)相比,MCS196系列單片機(jī)具有更快的運(yùn)算速度和更豐富的片上外圍設(shè)備,提高了控制系統(tǒng)的實(shí)時(shí)性,主要體現(xiàn)在以下幾個(gè)方面:

a.可采用8/16位動(dòng)態(tài)總線配置方式,增強(qiáng)系統(tǒng)的靈活性。

b.CPU中的算術(shù)邏輯單元不采用常規(guī)的累加器結(jié)構(gòu),改用寄存器-寄存器結(jié)構(gòu)。CPU的操作直接面向256字節(jié)的寄存器,消除了51單片機(jī)中存在的累加器的瓶頸問(wèn)題,提高了操作速度和數(shù)據(jù)吞吐能力。

c.有一套效率更高、執(zhí)行速度更快的指令系統(tǒng)??梢詫?duì)帶符號(hào)數(shù)和不帶符號(hào)數(shù)進(jìn)行操作,16×16位只需1.4μs(20MHz),32÷16位只需2.4μs(20MHz),此外還有3操作數(shù)指令,大大提高指令效率。

選擇80C196KC單片機(jī)作為數(shù)據(jù)采集模塊的核心器件,可以滿足應(yīng)用系統(tǒng)的要求,保證系統(tǒng)的可靠性和實(shí)時(shí)性。

CAN總線接口電路

CAN總線接口由PHILIPS公司的獨(dú)立總線控制器SJA1000和接口芯片82C250組成。SJA1000在軟件上和引腳上都是與它的前款PCA82C200獨(dú)立控制器兼容的,并增加了許多新功能:標(biāo)準(zhǔn)幀數(shù)據(jù)結(jié)構(gòu)和擴(kuò)展幀數(shù)據(jù)結(jié)構(gòu),并且這2種幀格式都具有單/雙接收過(guò)濾器;64字節(jié)的接收FIFO;可讀錯(cuò)誤計(jì)數(shù)器和可編程的出錯(cuò)警告界限以及僅聽(tīng)模式和自測(cè)試模式等。硬件連接上比較簡(jiǎn)單:SJA1000的數(shù)據(jù)地址總線是分時(shí)復(fù)用的,可以直接與80C196KC的P3口連接,對(duì)應(yīng)控制線相連即可。需注意的是,80C196KC是Intel公司的處理器,因此SJA1000工作在Intel方式,mode引腳應(yīng)接電源正端,另外單片機(jī)的外部中斷只有正跳變有效,而SJA1000的中斷信號(hào)是低電平有效,因此需反相后才能連接單片機(jī)中斷引腳。

82C250器件提供對(duì)總線的差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接收能力,其RS引腳允許選擇3種不同的工作方式:高速、斜率控制和待機(jī)。在低速和總線長(zhǎng)度較短時(shí),一般采用斜率控制方式,限制上升和下降斜率,降低射頻干擾,斜率可通過(guò)由RS引腳至地連接的電阻進(jìn)行控制。通信信號(hào)傳輸?shù)綄?dǎo)線的端點(diǎn)時(shí)會(huì)發(fā)生反射,反射信號(hào)會(huì)干擾正常信號(hào)的傳輸,因而總線兩端通常應(yīng)接有終端電阻,以消除反射信號(hào),其阻值約等于傳輸電纜的特性阻抗,一般取120Ω。

數(shù)字信號(hào)采集電路

電液伺服實(shí)驗(yàn)臺(tái)需要采集的物理量之一是液壓缸的位移,實(shí)驗(yàn)室現(xiàn)有裝備的位移傳感器有2種:感應(yīng)同步器和旋轉(zhuǎn)光電編碼器。二者都配有帶BCD碼輸出的數(shù)顯測(cè)量?jī)x表,直接采集數(shù)顯表的數(shù)字量可以保證采集模塊具有儀表的高精度,避免因采集傳感器前端脈沖而帶來(lái)的誤差,同時(shí)也使電路更加簡(jiǎn)潔。

數(shù)字顯示儀表的有效BCD碼位數(shù)為5位(個(gè)、十、百位及2位小數(shù)位),另帶一位符號(hào)位,共有21位二進(jìn)制位。80C196KC片內(nèi)不帶程序存儲(chǔ)器,因而用P3和P4口作為地址數(shù)據(jù)總線,單片機(jī)剩余有效IO口資源較少,因此必須擴(kuò)展并口。并口擴(kuò)展可以采用專用擴(kuò)展芯片或通用74系列的邏輯芯片,為了簡(jiǎn)化電路和編程,采用常見(jiàn)的可擴(kuò)展24路IO口的82C55A并口擴(kuò)展芯片?,F(xiàn)場(chǎng)的數(shù)字顯示儀表的輸出是非標(biāo)準(zhǔn)的TTL電平,為了實(shí)現(xiàn)模塊與前端儀表兼容和隔離,對(duì)輸入的數(shù)字信號(hào)采用了TLP521光耦進(jìn)行電平轉(zhuǎn)換和信號(hào)隔離。

A/D轉(zhuǎn)換電路電路

本模塊中A/D轉(zhuǎn)換器選用AD1*,它與AD574兼容,12位分辨率,輸入電壓范圍0~±10V或0~±5V單雙極性可選,轉(zhuǎn)換時(shí)間為10μs,單通道最大采集速率50KHz,片內(nèi)帶基準(zhǔn)電壓、三態(tài)緩沖器,且具有采樣保持電路,完全滿足設(shè)計(jì)的需要。

模擬電壓信號(hào)來(lái)自BLR1型拉壓式稱重傳感器,傳感器壓力測(cè)量量程為0~5000kg,輸出電壓信號(hào)0~16mV。為適應(yīng)AD1*輸入電壓范圍,需對(duì)傳感器的微弱電壓信號(hào)放大,但同時(shí)并存許多噪聲源:傳感器內(nèi)阻、電纜電阻、放大器電路以及電路周圍的電磁干擾源。因此,電壓信號(hào)前端采用低通濾波器和差分放大器AD620等來(lái)抑制差模噪聲和共模噪聲,如圖3所示。

圖3

設(shè)Vs為傳感器的信號(hào)電壓,Vn1、Vn2為外部噪聲源在電纜線上的感應(yīng)噪聲信號(hào),Vns為電路噪聲。因此,差分放大器輸出電壓Vo為:

Vo=A(V1-V2)=A(Vs+Vns+(Vn1+Vn2));如果噪聲源與信號(hào)源頻譜不重疊,則經(jīng)低通濾波電路后:Vf≈AVs。

GAL譯碼電路

本模塊電路中,單片機(jī)擴(kuò)展外圍器件較多,有程序存儲(chǔ)器AT28C256、CAN控制器SJA1000、并口擴(kuò)展82C55A和A/D轉(zhuǎn)換AD1*。196單片機(jī)在模塊中主要工作于8位總線寬度下,由于AD1*采用了12位并行輸出模式,因此還需動(dòng)態(tài)改變總線寬度。為了簡(jiǎn)化電路,以及適應(yīng)196單片機(jī)較高總線速度的要求,譯碼電路放棄了傳統(tǒng)的門電路組合的方法,采用了可多次編程的通用陣列邏輯器件(generic array logic)GAL16V8。這樣可以減少元器件數(shù)量、降低線路復(fù)雜程度,同時(shí)降低故障機(jī)率及提高硬件設(shè)計(jì)的靈活性。

GAL16V8引腳分配及邏輯表達(dá)式如下:

  Input device‘P16V8AS’;

  WR,RD,CAN,A12,A13,A14,A15,ADC

  pin2,3,4,5,6,7,8,9;

  BUSWIDTH,CSCAN,INTCAN,CEROM,CSADC, CS8255,NTADC,EADC

  pin19,18,17,16,15,14,13,12;

  EQUATI*

  !CEROM=!A15&!A14&A13&!A12#

  !A15&!A14&A13&A12

  #!A15&A14&!A13&!A12#!A15&

  A14&!A13&A12

  #!A15&A14&A13&!A12#!A15&

  A14&A13&A12

  #A15&!A14&!A13&!A12#A15&!

  A14&!A13&A12;

  !CSCAN=A15&!A14&A13&!A12;

  !CS8255=A15&!A14&A13&A12;

  !CSADC=A15&A14&!A13&!A12;

  BUSWIDTH=A15&A14&!A13&!A12;

  !INTCAN=CAN;

  !INTADC=ADC;

  !CEADC=WR&RD;

由上述邏輯表達(dá)式可以看出,外圍器件地址基地址由最高4位地址A12~A15決定,AT28C256、SJA1000、82C55A及AD1*對(duì)應(yīng)基地址分別為:2000H,A000H,B000H,C000H。當(dāng)選通AD1*時(shí),單片機(jī)總線寬度控制引腳BUSWIDTH將置為高,動(dòng)態(tài)調(diào)整到16位總線寬度,其余時(shí)刻,BUSWIDTH為低,單片機(jī)保持8位總線寬度。INTCAN和INTADC分別是對(duì)SJA1000和AD1*中斷請(qǐng)求信號(hào)取反。GAL表達(dá)式文件用ABEL軟件編譯形成JED文件,使用通用編程器燒入芯片,且可反復(fù)多次燒寫(xiě),方便調(diào)試。

軟件編程

控制軟件的合理設(shè)計(jì)是模塊實(shí)時(shí)、有效地完成數(shù)據(jù)采集及通信任務(wù)的關(guān)鍵,主要包括系統(tǒng)初始化、CAN信息處理、數(shù)據(jù)采集及處理等功能模塊。系統(tǒng)開(kāi)放一個(gè)定時(shí)中斷,定時(shí)時(shí)間對(duì)應(yīng)上位機(jī)發(fā)送來(lái)的采樣周期。CAN報(bào)文的接收主要有2種方式:中斷和查詢方式。為提高系統(tǒng)的實(shí)時(shí)性,同時(shí)也保證接收緩沖器不出現(xiàn)數(shù)據(jù)溢出現(xiàn)象,模塊中采用中斷接收方式。CAN報(bào)文發(fā)送采用查詢方式,即當(dāng)需要發(fā)送數(shù)據(jù)時(shí),將預(yù)先組織好的數(shù)據(jù)幀按字節(jié)寫(xiě)入SJA1000的發(fā)送緩沖寄存器中。

SJA1000的初始化主要是在SJA1000的復(fù)位模式下設(shè)置相應(yīng)寄存器。在初始化CAN內(nèi)部寄存器時(shí)應(yīng)注意同一網(wǎng)絡(luò)中各模塊的通信速率的設(shè)置應(yīng)一致。下面給出SJA1000工作在BasicCAN模式下的簡(jiǎn)單的初始化源程序:

  INIT-SJA1000:

  LDB AL, #01H

  STB AL, REG-CR??;復(fù)位SJA1000

  LDB AL, #0AAH

  STB AL, REG-OCR ;設(shè)置輸出寄存器為普通輸出模式

  LDB AL, #048H

  STB AL, REG-CDR?。皇鼓軆?nèi)部比較器,禁止時(shí)鐘輸出

  STB #01H, REG-BTR0?。辉O(shè)置波特率為

  250K(使用16M晶振)

  STB #1CH, REG-BTR1

  LDB AL, #00H

  STB AL, REG-ACR??;設(shè)置驗(yàn)收碼寄存器

  LDB AL, #0FFH

  STB AL, REG-AMR??;設(shè)置驗(yàn)收屏蔽碼寄存器

  LDB AL, REG-CR

  ANDB AL, #0FEH??;SJA1000退出復(fù)位模式

  LDB AL, #02H

  STB AL, REG-CR??;設(shè)置中斷寄存器,使能

  接收中斷

  RET

以上程序段可以正確初始化SJA1000,為了提高程序可靠性和容錯(cuò)性,實(shí)際應(yīng)用中應(yīng)該讀出SJA1000寄存器內(nèi)容并加以比較,從而判斷是否正確寫(xiě)入。

結(jié)束語(yǔ)

基于以上所述的軟、硬件設(shè)計(jì)實(shí)現(xiàn)了CAN協(xié)議所包括數(shù)據(jù)鏈路層和物理層,由于CAN總線協(xié)議沒(méi)有定義應(yīng)用層,因此在實(shí)際的應(yīng)用中有必要定義高層通信協(xié)議,即相應(yīng)的命令、參數(shù)和數(shù)據(jù)的格式。國(guó)際上比較流行的基于CAN底層協(xié)議的高層協(xié)議有DeviceNet和CANopen,我們?cè)诤?jiǎn)單應(yīng)用中,采用了自定義的簡(jiǎn)單通信協(xié)議,在此不作敘述。設(shè)計(jì)的智能數(shù)據(jù)采集模塊應(yīng)用于電液伺服控制系統(tǒng)以來(lái),運(yùn)行情況良好,由于CAN總線的應(yīng)用,大大提高了分布式數(shù)據(jù)采集和控制系統(tǒng)的靈活性、可靠性和實(shí)時(shí)性,建立了一個(gè)有效的現(xiàn)場(chǎng)總線控制系統(tǒng)的實(shí)驗(yàn)教學(xué)平臺(tái)。同時(shí)該數(shù)據(jù)采集模塊也可以方便地移植到工業(yè)上的其它控制系統(tǒng)中,與其它基于CAN總線的智能控制模塊組成CAN現(xiàn)場(chǎng)總線控制系統(tǒng)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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