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