基于CAN總線(xiàn)的數(shù)據(jù)采集記錄裝置設(shè)計(jì)
- 加入技術(shù)交流群
掃碼加入
和技術(shù)大咖面對(duì)面交流
海量資料庫(kù)查詢(xún)
1.緒論
現(xiàn)場(chǎng)總線(xiàn)作為生產(chǎn)現(xiàn)的場(chǎng)數(shù)據(jù)通信與控制的網(wǎng)絡(luò)技術(shù),在測(cè)量控制領(lǐng)域隨著信息技術(shù)的發(fā)展已得到廣泛的應(yīng)用?,F(xiàn)在的工業(yè)現(xiàn)場(chǎng)總線(xiàn)控制網(wǎng)絡(luò)技術(shù)已經(jīng)被認(rèn)為是一種比較的成熟的技術(shù),同時(shí)也被認(rèn)為是目前最具有前途的一種現(xiàn)場(chǎng)總線(xiàn)之一。然而,CAN現(xiàn)場(chǎng)總線(xiàn)作為一種面向工業(yè)底層控制的通信網(wǎng)絡(luò),其局限性也是顯而易見(jiàn)的。首先,它不能與Internet互連,不能實(shí)現(xiàn)遠(yuǎn)程信息共享。其次,它不易與上位控制機(jī)直接接口。因此,我們?cè)诒疚闹幸胍蕴W(wǎng)技術(shù)。
以太網(wǎng)是在上個(gè)世紀(jì)70年代為連接多個(gè)實(shí)驗(yàn)室而開(kāi)發(fā)出的一種局域網(wǎng)技術(shù),隨著互聯(lián)網(wǎng)技術(shù)和計(jì)算機(jī)的迅猛發(fā)展,以太網(wǎng)已成為當(dāng)今世界上應(yīng)用范圍最廣、最為常見(jiàn)的一種網(wǎng)絡(luò)技術(shù)。他在工業(yè)控制中的優(yōu)勢(shì)是顯而易見(jiàn)的:首先,基于TCP/IP協(xié)議的以太網(wǎng)是一種標(biāo)準(zhǔn)開(kāi)放式的網(wǎng)絡(luò),由其組成的系統(tǒng)兼容性和互操作性好,資源共享能力強(qiáng),可以很容易的實(shí)現(xiàn)將控制現(xiàn)場(chǎng)的數(shù)據(jù)與信息系統(tǒng)上的資源共享;其次,數(shù)據(jù)的傳輸距離長(zhǎng)、傳輸速率高,而且很容易與Internet連接。
本設(shè)計(jì)利用基于ARM7內(nèi)核的LPC2294處理器,在深入分析了以太網(wǎng)、TCP/IP協(xié)議和CAN總線(xiàn)的基礎(chǔ)上,實(shí)現(xiàn)了兩路CAN總線(xiàn)和以太網(wǎng)的通信互聯(lián)。
2.系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)
本設(shè)計(jì)使用的處理器是PHIIPS公司推出的LPC2294,他是一款基于支持實(shí)時(shí)仿真和跟蹤的ARM7TDMI內(nèi)核,功能強(qiáng)大且功耗低。
其顯著的優(yōu)點(diǎn)是非常適合于通訊網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器以及其它各種類(lèi)型的應(yīng)用。設(shè)計(jì)中圍繞LPC2294內(nèi)核,進(jìn)行了最小系統(tǒng)和相應(yīng)的擴(kuò)展器件電路設(shè)計(jì),設(shè)計(jì)里包括了復(fù)位電路、晶振電路、電源電路等關(guān)鍵電路。
2.1 系統(tǒng)電源電路設(shè)計(jì)
由于核心控制器LPC2294需要2組電源:
1.8V的內(nèi)核供電電源和3.3V的IO口供電電源,而以太網(wǎng)控制器RTL8019AS需要的供電電源為5V.因此,我們?cè)O(shè)計(jì)了3個(gè)電壓轉(zhuǎn)換電路:采用降壓穩(wěn)壓器LM1575將輸入電壓轉(zhuǎn)換為穩(wěn)定的5V輸出,再通過(guò)低壓差(LDO)穩(wěn)壓器SPX1117M-3.3把LM1575穩(wěn)壓輸出的5V作為輸入電源,轉(zhuǎn)換為3.3V輸出電源,同時(shí)利用SPX1117M-1.8得到了1.8V電源。
2.2 以太網(wǎng)電路設(shè)計(jì)
以太網(wǎng)通信模塊采用了以太網(wǎng)控制器RTL8019AS(5V供電)和隔離接口HR90117A的組合方式。設(shè)計(jì)中使用兩路CAN進(jìn)行數(shù)據(jù)采集,由于LPC2294具有4路CAN控制器,其功能與SJA1000相似,因此只需外接兩個(gè)高速CAN隔離收發(fā)器便可達(dá)到通信的目的[2].
2.3 CAN電路設(shè)計(jì)
CAN總線(xiàn)模塊是本設(shè)計(jì)的核心部分,負(fù)責(zé)實(shí)現(xiàn)數(shù)據(jù)采集的功能。設(shè)計(jì)中使用的CTM1050T是一款帶隔離的高速CAN收發(fā)器芯片,該芯片內(nèi)部集成了所有必需的CAN隔離及CAN收、發(fā)器件,這些都被集成在不到3平方厘米的芯片上,芯片的主要功能是將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線(xiàn)的差分電平并且具有DC2500V的隔離功能及ESD(Electro-Static Discharge,靜電釋放)保護(hù)作用。
本記錄儀使用CTM1050T向上兼容的3.3V和5V CAN控制器,實(shí)現(xiàn)了兩路CAN數(shù)據(jù)采集,所以L(fǎng)PC2294和CTM1050T之間數(shù)據(jù)發(fā)送接收引腳可以直接連接,同時(shí)我們還需加入一個(gè)電阻阻值為20Ω的終端電阻來(lái)提高數(shù)據(jù)通信的抗干擾性及可靠性。
3.系統(tǒng)軟件設(shè)計(jì)
3.1 程序設(shè)計(jì)開(kāi)發(fā)環(huán)境及設(shè)計(jì)流程
設(shè)計(jì)以VC++6.0為開(kāi)發(fā)環(huán)境,C語(yǔ)言為開(kāi)發(fā)語(yǔ)言,首先完成了系統(tǒng)的移植,接著完成了RTL8019AS軟件設(shè)計(jì)與CAN控制器軟件設(shè)計(jì),實(shí)現(xiàn)了CAN與以太網(wǎng)網(wǎng)關(guān)協(xié)議轉(zhuǎn)換。
3.2 μc/os-Ⅱ的移植
為了使一個(gè)內(nèi)核能夠運(yùn)行在微處理器或微控制器上,我們首先需要做的便是進(jìn)行移植。完成移植的過(guò)程中我們修改了3個(gè)和CPU相關(guān)的文件,分別是os_cpu.h、os_cpu_a.asm和os_cpu_c.c,移植的過(guò)程中發(fā)現(xiàn):
根據(jù)處理器的不同,一個(gè)移植實(shí)例需要編寫(xiě)或改寫(xiě)的代碼數(shù)量不盡相同,可能介于50~500行之間。
3.3 RTL8019AS軟件設(shè)計(jì)
RTL8019AS的工作模式有查詢(xún)和中斷兩種模式,本設(shè)計(jì)中考慮到實(shí)時(shí)性、多任務(wù),以最大限度的利用CPU與μc/os-Ⅱ系統(tǒng)的實(shí)時(shí)性、提高系統(tǒng)的響應(yīng)速度為目的,采用了中斷的方式來(lái)實(shí)現(xiàn)RTL8019AS的收發(fā)功能。
評(píng)論