新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM微控制LPC2138的分布式系統(tǒng)設(shè)計(jì)

基于ARM微控制LPC2138的分布式系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2012-11-01 來源:網(wǎng)絡(luò) 收藏

無極性連接設(shè)計(jì)

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

在應(yīng)用編程(1AP)實(shí)現(xiàn)

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

的IAP程序位于BootBlock中,占用12KB存儲(chǔ)空間,位于地址0x0007D000-0x0007FFFF的Flash中,同時(shí)它的最低64字節(jié)也出現(xiàn)在從地址0x00000000開始的Flash存儲(chǔ)器區(qū)域,所以復(fù)位后中斷向量被激活,跳轉(zhuǎn)到Boot Block裝載程序的入口。Boot裝載程序控制復(fù)位后的初始化操作,并提供實(shí)現(xiàn)Flash編程的方法。 IAP程序是Thumb代碼,位于地址0x7FFFFFFO(重映射后地址)處。IAP的功能可用下面的C代碼來調(diào)用。

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

#define IAP_LOCATIONOx7FFFFFFl

(2)定義數(shù)據(jù)結(jié)構(gòu)或指針

unsigned long command[5];

unsigned long result[2];

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

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

IAP iap_entry;

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

iaP_entrY = (I A P)lAP_LOCATl0N;

(5)調(diào)用IAP

iap_entry(command,result);

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

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

更新過程可大體分為程序更新準(zhǔn)備和程序更新兩個(gè)階段:

準(zhǔn)備階段分三步完成,首先主站通過RS485總線將編譯過的新終端主程序(不包含更新模塊)分成小的數(shù)據(jù)單元下傳給終端,終端將收到的經(jīng)校驗(yàn)正確的數(shù)據(jù)存儲(chǔ)到片內(nèi)F1ash存儲(chǔ)器中,然后主站查詢終端代碼的接收情況,并對傳輸錯(cuò)誤的部分重新下傳進(jìn)行更正,最后主站發(fā)送啟動(dòng)更新指令,終端檢驗(yàn)程序數(shù)據(jù)正確性并置上更新標(biāo)志,停止刷新看門狗,從而使終端復(fù)位。

程序更新分兩步完成,首先終端重啟時(shí)檢測到更新標(biāo)志有效即可調(diào)用更新程序進(jìn)行程序更新,程序更新完成后再次使終端自復(fù)位,即可運(yùn)行更新后的程序代碼,完成程序更新全過程。

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

結(jié)語

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

參考文獻(xiàn):

[1].RS485datasheethttp://www.dzsc.com/datasheet/RS485_585289.html.
[2].datasheethttp://www.dzsc.com/datasheet/_454528.html.
[3].ARM7TDMI-Sdatasheethttp://www.dzsc.com/datasheet/ARM7TDMI-


上一頁 1 2 下一頁

關(guān)鍵詞: ARM LPC2138 分布式系統(tǒng)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉