摘要:介紹了一種基于ARM9通過CAN總線進行壓力數(shù)據(jù)采集的嵌入式系統(tǒng)設計。系統(tǒng)采用S3C2440A作為主處理器,MCP2515作為外接CAN控制器,通過CAN的工業(yè)現(xiàn)場總線進行相連,用MPX2100壓力傳感器實現(xiàn)分布式壓力數(shù)據(jù)采集。
關鍵詞:嵌入式系統(tǒng);壓力采集;CAN總線
0 引言
無論在日常生活還是在工業(yè)領域,很多技術都離不開傳感器。再“科學技術是第一生產(chǎn)力”的指導下,傳感器技術受到越來越多的重視。隨著科技的進步,在現(xiàn)代工業(yè)、農(nóng)業(yè)生產(chǎn)上壓力數(shù)據(jù)采集在一定程度上反映了生產(chǎn)設備的運行狀況和生產(chǎn)對象的某些相關物理特性的監(jiān)測,因此要在壓力傳感器的精確度、智能化等各個方面努力得到進一步的提高。基于S3C2440A的嵌入式系統(tǒng),不僅高性能而且功耗。使用CAN總線的目的是因為其抗干擾性強、可靠性高和通信靈活的優(yōu)點。壓力傳感器MPX2100可以一線多接,實現(xiàn)分布式壓力采集。盡管大多數(shù)ARM處理器內(nèi)部不帶CAN總線控制器,但可以設計ARM嵌入式系統(tǒng)通過外部搭建CAN控制器成為通用方案。并通過LCD液晶顯示,顯示了壓力的采集,為控制提供了可視化模塊。
1 系統(tǒng)整體方案
本設計包括S3C2440主控制器、CAN通信模塊、LCD顯示模塊、串口、以及JATG調(diào)試口。上述模塊構建了壓力采集系統(tǒng)的硬件平臺。S3C2440微處理器通過SPI總線外接CAN總線控制器MCP2515進行數(shù)據(jù)實時通信,并通過CAN收發(fā)器與工業(yè)現(xiàn)場總線進行數(shù)據(jù)交換。主控器與LCD液晶顯示平臺,顯示壓力的采集。如圖1所示,系統(tǒng)硬件設計包括CAN總線轉(zhuǎn)接口和CAN總線壓力采集節(jié)點系統(tǒng)的設計。
2系統(tǒng)硬件設計
2.1 CPU設計:CPU是采用三星公司推出的基于ARM920T的微處理器S3C2440A。選型的目的是基于低功耗、低價格、且具有高性能的32/16位RISC嵌入式微處理器??梢怨ぷ鬟_到400MHZ的高頻范圍,主要有ARM9TDMI、MMU和高速緩存三部分組成。
2.2 CAN總線接口設計:CAN總線接口電路采用帶獨立的SPI控制器的CAN協(xié)議控制器MCP2515、CAN總線收發(fā)器PCA82C251、雙通道數(shù)字隔離器ADUM1201。MCP2515協(xié)議控制器可支持CAN總線V2.0A和V2.0B兩種技術規(guī)范,通訊速率是1Mb/s。PCA82C251總線收發(fā)器成為CAN控制器和物理總線的接口,PCA82C251總線收發(fā)器的耗能包括向總線的差動發(fā)送功能和對CAN控制器的差動接收功能。
2.3 隔離器接口設計:6N137光耦合器是一種10MBd的告訴光耦合器,可以對壓力、電流和電壓有補償功能,且輸入的電流也是5mA的極小電流。PCA82C251的功能是實現(xiàn)系統(tǒng)外總線的電氣隔離,以起到增強系統(tǒng)的穩(wěn)定和安全的作用。在總線的終端接一個終端電阻和TVS管。
2.4 壓力采集接口設計:數(shù)據(jù)采集終端使用美國微芯公司的內(nèi)帶CAN控制器的PICF182580為微控制器,特點是采用精簡指令集,總線結構是哈佛結構,流水線的取指令方式,具有實用,低價等優(yōu)點。使用DALLAS公司生產(chǎn)的數(shù)字壓力計MPX2100進行壓力采集。如圖4所示,此方法可以方面實現(xiàn)分布式壓力檢測。
3 系統(tǒng)軟件設計
CAN驅(qū)動設計
S3C2440A 是一款低功耗高性能的小型芯片微型控制器,以ARM920T為核心控制器,具備16/32位精簡指令集。內(nèi)核通過設備驅(qū)動與I/O設備進行交互,內(nèi)核可以向應用層序提供一個統(tǒng)一的接口,滿足了應用程序的要求。
3.1 平臺設備:通過platform開發(fā)底層設備流程一般是:定義platform_device,注冊platform_device,定義platform_driver,注冊platform_driver。首先對mcp2515平臺設備初始化(主要是設備名、設備編號、設備資源等初始化),其中設備資源是platform_device主要參數(shù)它包括:設備需要申請的中斷號,內(nèi)存,I/O端口等資源(如下所示),然后對平臺設備進行注冊。
向內(nèi)核進行platform_device注冊以后,可以對platform_driver進行初始化以及注冊,platform_driver結構初始化主要為:static struct platform_driver s3c24xx_mcp2515_spi_driver = {
.probe =__exit_p(s3c2440_mcpspi0_probe),
.remove= __exit_p(s3c2440_mcp_spi0_remove),
.driver = {
.name = \"s3c2440-mcpspi0\",
.owner = THIS_MODULE,
},
};
當platform總線匹配到總線注冊的設備和驅(qū)動后,就會調(diào)用platform_driver上的probe函數(shù),在probe函數(shù)中可以獲取設備內(nèi)存資源和中斷資源,初始化SPI,初始化MCP,所有這些操作完成后就是mcp2515的字符設備的注冊。
3.2 壓力采集模塊設計:當用戶對系統(tǒng)進行上電初始化,MPX2100從一個初始化序列開始通過單線總線實施所有執(zhí)行任務。采集控制器開始接受遠程幀,如果接受到則進行壓力采集,并進行CAN遠程發(fā)送數(shù)據(jù)幀,如果沒有接受到遠程幀,則繼續(xù)等待,在接受到遠程幀時,如果是結束信號幀,則結束數(shù)據(jù)的采集。
4 結束語
采用CAN-Ethernet通信模塊實現(xiàn)了分布式壓力采集、分析和實時監(jiān)控。同時通過此方法為CAN-Ethernet互連實現(xiàn)了一種低廉、高速和穩(wěn)定的解決方案。隨著我們對壓力傳感器的材料以及工藝的不斷研究,同時電子和計算機技術的不斷發(fā)展,相信在未來壓力傳感器不僅能在技術參數(shù)上能取得突破,應用范圍也將更加廣泛。
參考文獻:
[1]鄧衛(wèi),裴瑋,齊智平. 基于ARM技術的以太網(wǎng)與CAN現(xiàn)場總線協(xié)議轉(zhuǎn)換網(wǎng)關的設計與實現(xiàn)[J]. 機電一體化.2007(4):28-33.
[2](美)博韋,西斯特 著,陳莉君,張瓊聲,張宏偉 譯.深入理解LINUX內(nèi)核(第三版)[M] .北京:中國電力出版社.2007:09.01.
[3]饒運濤.現(xiàn)場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社.2007:08.01
[4]宋作成,張廣明,王崴.嵌入式Linux下CAN設備驅(qū)動的設計[J].計算機工程與設計.2009(15):3552-3558.
[5]王繼國,吉吟東,孫新亞.CAN總線控制器MCP2515的原理及應用[J].電測與儀表.2004(01):52-56.
作者簡介:唐慧瑩(1985—),河南省南陽市,武漢東湖學院,教師,講師。