白宇
摘 要:本設計以LPC2136微處理器芯片為硬件核心,外擴工業常用的控制接口、通訊接口以及常用的功能模塊,在實時操作系統uC/OSⅡ下開發片內外設和外部擴展器件的驅動。平臺軟件中實現了Modbus協議棧,可以實現主機和從機的組網通訊。
關鍵詞:ARM;Modbus;LPC2136;開發平臺
DOI:10.16640/j.cnki.37-1222/t.2016.06.010
0 引言
隨著硬件開發水平以及工業現場工藝水平的提高,工業現場對工業儀表提出更高的要求,傳統的51系列單片機因其片內資源相對較少,需要擴展的器件較多,大數據量的計算完成周期較長,實時性難以控制等不利因素正在被不斷的淘汰,工業產品為了盡快占領市場,常常把產品的研發時間壓縮的很短;為了不必每次都從底層做起,設計了一個基于ARM和Modbus協議的嵌入式工業控制開發平臺。平臺選擇ARM微處理器,加入以IC公司生產的大量片內外設,使ARM系列處理器擁有非常優良的應用性能。在ARM中安裝uC/OSⅡ操作系統,并在uC/OSⅡ環境下開發可剪裁、可移植的平臺軟件,實現Modbus協議的主從機通訊。使用此平臺開發的主機具有較高且可靠的實時性,可組建工業總線網絡,實現集中控制,靈活性高,維護和升級成本低,易于擴展等優點。
1 硬件設計
(1)器件選擇。平臺硬件主要由高性能ARM、4~20mA電流產生電路、接口隔離、計數器、數據存儲和RS232串口構成。其中高性能的ARM采用NXP公司的LPC2xxx系列ARM7中的LPC2136.擁有一個SPI、一個SSP、兩個UART、一個DAC、兩個ADC、256KB的FLASH和32KB的RAM等片內外設。4~20mA電流產生采用AD421芯片配合外圍芯片。接口隔離采用高速電偶合成器6N137和雙向光耦繼電器AWQ210.計數器采用16位可編程計數器8254.數據存儲采用I?C接口的電源監控芯片CAT1025中的E?ROM。RS-232串口采用美信的MAX232。
(2)平臺硬件連接。1)、LPC2136與8254的連接。由于LPC2136沒有總線結構,搭建時需要用GPIO來模擬8254的數據線和控制信號線。雖然8254是5V供電,但是LPC2136的GPIO口可以承受5V電壓的數字信號,兩者之間不需要電平轉換可以直接連接;2)LPC2136與AD421的連接。AD421是SPI控制方式,為外部接口電路,不可以直接與LPC2136直接連接,因此設計電源隔離模塊隔離電源,用高速光電耦合器件6N137隔離SPI總線。
2 平臺軟件設計
為了方便平臺軟件的移植和剪裁,每個模塊都有相應的配置文件(頭文件)。配置文件中都定義了宏USE_XXXX,其中,XXXX是模塊的名稱。當USE_XXXX標志位enable時,是相應的功能模塊可以使用,否則模塊disable。
(1)LPC2136片內外設的驅動。平臺用到的片內外設有UART控制器、I?C控制器、看門狗控制器、SPI控制器、SSP控制器和RTC控制器。其中UART控制器、I?C控制器、SPI控制器和SSP控制器接口采用中斷方式發送和接收數據。在驅動模塊的配置文件中定義配置參數,通過修改配置參數的值,來改變驅動接口函數的配置。如:在UART0驅動的配置文件中定義宏RS_485_R0()和RS_485_S0(),就可以使UART0驅動用于RS-485進行通訊。
(2)可編程計數器8254的驅動和應用函數。平臺使用了4片8254芯片。由于LPC2136沒有總線結構,采用模擬總線和控制信號的方式。在驅動的配置文件中,定義了數據線D0~D7、CS1~CS2、A0~A1、WR和RD,使用時根據實際硬件連接修改。配置文件中定義了宏CS1_EN、CS2_EN、CS3_EN和CS4_EN,若其值為1,則對應芯片的驅動可用,否則被屏蔽。如:定義宏CS1_EN為0,片選為CS1的8254芯片驅動不可用。
用戶應用函數包括:計數器初始化、儲存計數器值和讀計數器值。平臺采用鎖存回讀的方式讀取計數器8254中的16位計數值。為保證各個計數器工作時的一致性,在鎖存計數器值前,調用OS_ENTER_CRITICAL()宏定義關閉中斷和任務調度,鎖存結束調用OS_EXIT_CRITICAL()宏定義恢復中斷和任務調度。在讀計數器值時,保存計數值的緩沖區可能被其他任務操作,為了保證臨界代碼段的完整性,同時使用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()宏定義。
(3)CAT1025中E?ROM的讀寫函數。CAT1025中E?ROM的讀寫函數是在I?C驅動函數的基礎上編寫的,通過修改配置文件中的宏定義I?CWrite和I?CRead的值來確定使用I?C0或I?C1控制器。根據CAT1025的特性,讀操作時只有確定起始地址和數據個數即可,而寫操作采用頁寫模式,本設計的寫CAT1025中E?ROM的操作函數實現一次寫任意頁面、任意地址和不限數量的功能,用戶不必考慮換頁問題。
(4)Modbus協議的實現。采用ModbusRTU協議,實現從機協議棧和主機協議棧部分。通過修改協議棧的配置文件,可把控制器設置為主機、從機或即為主機又為從機。主機物理層使用LPC2136的UART1,從機物理層使用LPC2136的UART0,根據協議棧的主從機設備描述信息初始化UART的波特率、停止位、奇偶校驗,實現RS-232或RS-485通訊。主從機協議棧主要實現了讀線圈、讀離散量輸入、讀保持寄存器、讀輸入寄存器、寫單個線圈、寫多個線圈和寫多個寄存器的功能。通過修改配置文件,可以確定使用哪些功能。
3 結束語
ARM的迅速發展,使其逐漸取代了傳統51單片機在工業儀表中的應用。本文介紹了基于ARM和Modbus協議的嵌入式工業儀表控制器開發平臺,硬件設計合理,工作可靠,軟件采用先進技術,移植和裁剪方便,通用Modbus協議,使儀表通訊可靠,并可組建工業網絡,具有實用價值,是工業儀表控制器的可靠平臺。
參考文獻:
[1]周立功.深入淺出ARM7-LPC213x/LPC214x(上冊)[K].北京:北京航天航空大學出版社,2005.
[2][美]Jean J.Labrose著,邵貝貝等譯.嵌入式實時操作系統uC/OS-Ⅱ(第二版).北京:北京航天航空出版社,2003.
[3]Modbus協議,http://www.chinakong.net.