《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM微控制器LPC2138的分布式系統(tǒng)設計
基于ARM微控制器LPC2138的分布式系統(tǒng)設計
摘要: 本文基于RS485總線,以ARM微控制器LPC2138為核心構建了一個分布式控制系統(tǒng),依靠ARM微控制器的強大的控制處理能力和豐富的外設,實現(xiàn)了智能化的控制和更大程度的系統(tǒng)集成,文中給出了部分電路圖,闡述了系統(tǒng)中引入的無極性連接和IAP(在應用可編程)技術。
Abstract:
Key words :

  引言

  分布式控制系統(tǒng)(Distributed Control System,DCS)是應用計算機技術對生產過程進行集中監(jiān)測、管理和分散控制的綜合性網絡系統(tǒng)。目前,采用微控制器作為分布控制核心,通過RS485網絡構建的分布式控制系統(tǒng)在工業(yè)、農業(yè)、醫(yī)療等領域獲得了廣泛的應用,例如,分布式溫室環(huán)境信息監(jiān)測系統(tǒng),分布式水下電腦燈控制系統(tǒng)等等。

  LPC2138是飛利浦公司推出的基于ARM7TDMI-S 內核的微控制器,它具有非常豐富的外圍模塊,強大的處理和控制功能,非常易于構建嵌入式系統(tǒng)。用它構建的分布式控制系統(tǒng),不僅體積小,性價比高,而且還具有穩(wěn)定可靠、功能強大、開發(fā)周期短等特點。

  LPC2138微控制器介紹

  LPC2138內嵌512KB的高速Flash存儲器和32KB的RAM,具有豐富的外設資源:2個32位定時器(帶捕獲、比較通道);2個10位8路ADC;1個10位DAC;PWM 通道;47路GPIO;9個邊沿或電平觸發(fā)的外部中斷;具有獨立電源和時鐘的

 

RTC;多個串行接口(UART、I2C、SPI、SSP)。它內含向量中斷控制器,可配置中斷優(yōu)先級和向量地址,片內Boot裝載程序可以實現(xiàn)在系統(tǒng)/在應用編程(ISP/IAP),通過片內PLL可實現(xiàn)60MHz的CPU操作頻率,具有空閑和掉電2種低功耗模式,并且可通過外部中斷喚醒。

  控制系統(tǒng)設計

  在分布式的控制系統(tǒng)中一般采用通用的單片機作為控制處理的核心,不僅速度慢信息處理能力弱,而且一般需要附加許多外圍電路,例如RAM、ROM、ADC、DAC、看門狗等等。采用ARM微控制器LPC2138為核心的分布式控制系統(tǒng),通過擴展簡單的外圍電路(顯示模塊、中斷鍵盤、RS485模塊),開發(fā)相應的嵌入式程序即可實現(xiàn)功能強大的系統(tǒng),不僅具有較高的系統(tǒng)集成度和穩(wěn)定性,而且開發(fā)周期比較短。本文所設計系統(tǒng)總體框圖如圖1所示,包含了OLED顯示、中斷鍵盤、RS485接口和EXT_CON接口(用來功能擴展的預留接口)。

系統(tǒng)總體設計框圖

圖1  系統(tǒng)總體設計框圖

  顯示系統(tǒng)設計

  系統(tǒng)顯示模塊采用OLED顯示模塊VGS12864E,它是64×128矩陣式單色圖形字符顯示模塊,由于采用有機發(fā)光技術,無需背光源,所以與傳統(tǒng)LCD相比在陽光照射下更能呈現(xiàn)清晰的圖像和數(shù)據(jù)。另外它還具有高亮度、高對比度、寬視角、低驅動電壓和高發(fā)光效率等優(yōu)越的特性,較寬的溫度范圍(存儲溫度:-30℃~80℃,工作溫度: -20℃~70℃)也能適應更惡劣的環(huán)境。

  VGS12864E使用兩片列驅動控制器,內嵌64×64顯示數(shù)據(jù)RAM,RAM中每位數(shù)據(jù)對應屏上一個點的亮、暗,每個半屏都被分成了按行的八頁,因為每個字節(jié)的數(shù)據(jù)按低位(LSB)在上,高位(MSB)在下的結構排列,所以在提取字庫的時候,需要設置取字模的方式為:縱向取模,字節(jié)倒序。它與LPC2138的連接如圖2所示。ARM和OLED之間需要加電平轉換芯片,本設計采用16位雙向電平轉換芯片IDT74FCT164245,另外進行電平轉換時需要進行方向控制(圖2中DIR即為方向控制腳)。

OLED顯示連接示意圖

圖2  OLED顯示連接示意圖

  RS485接口電路設計

  RS485通信部分采用TI公司的SN65HVD24 收發(fā)芯片,它具有較高的共模電壓范圍(-20~25V),支持最多256個節(jié)點,高達16kV的ESD,通信速率在500m時最高達3Mbps。為了防止串行通信時外界干擾引入微控制器,在微控制器和RS485通信芯片間加入了光電隔離電路,電路圖見圖3。

RS485通信接口電路圖

圖3  RS485通信接口電路圖

  無極性連接設計

  實現(xiàn)無極性連接有利于工程施工,方便系統(tǒng)擴容。如果采用差分曼徹斯特編碼的方法雖然可靠性高,但需要增加編解碼器,提高了硬件復雜性。本系統(tǒng)采用了異或門和軟件編程的方法實現(xiàn)。即在信息輸入輸出部分增加異或門進行控制,當連接錯誤的時候控制引腳輸出高電平對信息取反,連接正確引腳輸出低電平信息不變。通過程序實現(xiàn)系統(tǒng)的自動信息監(jiān)測和自動控制,由主機發(fā)送系統(tǒng)自檢信息,包括一個正向數(shù)據(jù)信息和反向的數(shù)據(jù)信息,在信息中包含正反信息碼,當從機接收到這些信息的時候就可以自動調整自己的控制端進行相應的控制操作。使用這種方式只需增加少許的軟硬件開銷就實現(xiàn)了無極性的控制。

  在應用編程(IAP)實現(xiàn)

  許多場合(例如地下燈光控制、土壤檢測)在系統(tǒng)布好后就不易進行系統(tǒng)重新配置和程序的更新,所以采用IAP技術不僅使系統(tǒng)的適應能力增強,工作壽命增長而且維護比較方便。

  LPC2138的IAP程序位于Boot Block中,占用12KB存儲空間,位于地址0x0007D000~ 0x0007FFFF的Flash中,同時它的最低64字節(jié)也出現(xiàn)在從地址0x00000000開始的Flash存儲器區(qū)域,所以復位后中斷向量被激活,跳轉到Boot Block裝載程序的入口。Boot裝載程序控制復位后的初始化操作,并提供實現(xiàn)Flash編程的方法。

 

  IAP程序是Thumb代碼,位于地址0x7FFFFFF0(重映射后地址)處。IAP的功能可用下面的C代碼來調用。

  (1)定義IAP程序的入口地址(由于IAP地址的第0位是1,因此,當程序計數(shù)器轉移到該地址時會引起Thumb指令集的變化)

  #define IAP_LOCATION 0x7FFFFFF1

  (2)定義數(shù)據(jù)結構或指針

  unsigned long command[5];

  unsigned long result[2];

  (3)定義函數(shù)類型指針

  Typedef void (*IAP) (unsigned int[],unsigned int[]);

  IAP iap_entry;

  (4)設置函數(shù)指針

  iap_entry = (IAP) IAP_LOCATION;

  (5)調用IAP

  iap_entry (command,result);

  程序開發(fā)采用ARM公司的集成開發(fā)工具ADS1.2,把終端程序分為主程序和更新程序兩部分:

  主程序用來實現(xiàn)終端的功能,是需要進行更新的部分,更新程序僅負責主程序的更新。編譯鏈接時主程序占據(jù)0~14扇區(qū),更新程序占據(jù)22~26扇區(qū),15~21扇區(qū)用來存儲待更新主程序。更新程序用到的數(shù)據(jù)定義到片內RAM中0x40007800~0x40007FFF區(qū)域。另外為了實現(xiàn)主程序和更新程序的精確定位,設置ARMLinker中Linktype用Scattered方式,它能根據(jù)格式文件中指定的地址映射生成ELF格式的映像文件。

  更新過程可大體分為程序更新準備和程序更新兩個階段:

  準備階段分三步完成,首先主站通過RS485總線將編譯過的新終端主程序(不包含更新模塊)分成小的數(shù)據(jù)單元下傳給

 

終端,終端將收到的經校驗正確的數(shù)據(jù)存儲到片內Flash存儲器中,然后主站查詢終端代碼的接收情況,并對傳輸錯誤的部分重新下傳進行更正,最后主站發(fā)送啟動更新指令,終端檢驗程序數(shù)據(jù)正確性并置上更新標志,停止刷新看門狗,從而使終端復位。

 

  程序更新分兩步完成,首先終端重啟時檢測到更新標志有效即可調用更新程序進行程序更新,程序更新完成后再次使終端自復位,即可運行更新后的程序代碼,完成程序更新全過程。

  另外,由于IAP服務代碼是Thumb指令,用C程序直接調用時須在設置編譯參數(shù)ATPCS時選中Arm/ThumbInte2rworking項。由于執(zhí)行IAP命令使用片內RAM頂端的32個字節(jié)空間,因此用戶程序不應該使用該空間。調用IAP功能前,要關閉PLL、MAM(存儲器加速模塊)部件及所有中斷以及正確設置系統(tǒng)時鐘。

  結語

  基于ARM微處理器的分布式控制系統(tǒng)不僅提高了系統(tǒng)集成度,增強了系統(tǒng)功能和系統(tǒng)穩(wěn)定性,而且通過其強大的處理能力和IAP技術也使得系統(tǒng)智能化程度提高,符合分布式控制系統(tǒng)的發(fā)展方向。

  參考文獻

  1.Philips Semiconductor . LPC2131/2132/2138 User Manual. 2004/11/22

  2.周立功, 張華 等. 深入淺出ARM7——LPC213x/214x(上冊)[M]. 北京:北京航空航天大學出版社, 2005年6月第一版

  3.趙會賓, 田慶春. 利用LPC2214的IAP功能實現(xiàn)程序遠程更新[J]. 無線電工程, 2006年第36卷第7期

  4.吳強, 周小芳. RS-485網絡通信的無極性接線設計[J]. 電子工程師, 2005年12月第31卷第12期

  5.王永清, 左敬志, 朱保昱. 基于MSP430F123的分布式水下電腦燈控制系統(tǒng)[J]. 現(xiàn)代電子技術, 2005年第5期總第196期

此內容為AET網站原創(chuàng),未經授權禁止轉載。