1 前言
國內(nèi)控制系統(tǒng)開發(fā)大多是幾個人以小組的形式根據(jù)不同的項目組織在一起,由于缺乏一個穩(wěn)定工作的硬件基礎(chǔ),整個開發(fā)工作的重點大都放在調(diào)試硬件故障。所有項目的開發(fā)幾乎全部使用匯編語言,嚴(yán)重影響了程序的可讀性和可移植性,更換不同的處理器就意味著一切從頭開始,就連使用相同處理器的不同項目組之間的程序重用也很困難。而對于嵌入式應(yīng)用系統(tǒng)應(yīng)著重解決的實際問題往往無暇顧及,非常不利于我國嵌入式應(yīng)用水平的提高;其次,測控系統(tǒng)通訊接口種類比較少, 多為傳統(tǒng)的RS-232、RS-485接口,數(shù)據(jù)交換速度慢,已經(jīng)不能滿足日益增長的數(shù)據(jù)傳輸需求;再次,傳統(tǒng)的8/16位單片機已經(jīng)越來越不能適應(yīng)日漸復(fù)雜的應(yīng)用需求,友好的交互界面、網(wǎng)絡(luò)互連功能、智能化的軟件、實時的數(shù)據(jù)處理幾乎成了現(xiàn)代實時測控系統(tǒng)的共同需求。
我們開發(fā)了基于ARM內(nèi)核處理器的NetC ARM7開發(fā)板,通過在嵌入式實時多任務(wù)操作系統(tǒng)uC/OS-Ⅱ上加入Interniche公司的嵌入式TCP/IP協(xié)議棧實現(xiàn)了一個網(wǎng)絡(luò)化、智能化、高性能的現(xiàn)代實時測控系統(tǒng)開發(fā)平臺。此外通過JTAG在線調(diào)試工具BDI2000 RDI for ARM和集成化開發(fā)環(huán)境IAR EW(或者ARM SDT/ADS)的結(jié)合大大提高了程序調(diào)試的效率。
???? 2 平臺設(shè)計
ARM內(nèi)核處理器具有高性能、低功耗、低成本、低開發(fā)難度等一系優(yōu)點,是測控系統(tǒng)由8/16位機升級到32位機的理想選擇。此外ARM7,ARM9,ARM10,Xscale的指令兼容,已有的軟件資源和開發(fā)經(jīng)驗不會由于升級到更高性能的處理器而受到巨大的損失。
???? 2.1 平臺需要建立在穩(wěn)定的可擴展的硬件基礎(chǔ)之上
我們開發(fā)了NETCARM7開發(fā)板(處理器為ATMEL公司的ARM7TDMI內(nèi)核的AT91M40800,主頻可達(dá)40MHz)作為中低端實時測控系統(tǒng)開發(fā)平臺的硬件基礎(chǔ)。AT91M40800性能已經(jīng)可以滿足一般測控系統(tǒng)的各種需求,功能簡單易用,雙面板就可以形成穩(wěn)定硬件設(shè)計,大大降低了開發(fā)成本。板上將處理器的所有管腳引出,可以根據(jù)實際的項目需求靈活的擴展出新的應(yīng)用。還集成了多達(dá)2M-byte的SRAM,保證用戶代碼可以獲得最高的性能,1M-byte Flash ROM,用來滿足絕大多數(shù)項目的需求。板上預(yù)留了JTAG端口,通過Abatron公司的BDI在線仿真器和IAR公司的集成開發(fā)環(huán)境EmbededWorkbench for ARM可以實現(xiàn)各種程序的在線調(diào)試。板上提供了2個串口,還可以將處理器的UART配置成SPI,除了完成通訊功能以外,還可以為很容易的連接AD變換器,滿足測控系統(tǒng)的需求。板上還擴展了10M以太網(wǎng)接口,在網(wǎng)絡(luò)控制器方面,我們也選用了低成本符合NE2000標(biāo)準(zhǔn)的RT8019,為平臺提供了網(wǎng)絡(luò)化的硬件基礎(chǔ)。此外板上還集成了液晶顯示,及行列式鍵盤接口可以很方便的為嵌入式應(yīng)用系統(tǒng)提供友好的用戶交互方式。
??? 2.2 開放源碼的嵌入式多任務(wù)操作系統(tǒng)是未來嵌入系統(tǒng)必然的選擇
控制系統(tǒng)所要完成得工作越來越復(fù)雜,程序越來越龐大,需要管理的外設(shè)越來越多,只有擁有嵌入式多任務(wù)操作系統(tǒng),擁有穩(wěn)定工作的硬件基礎(chǔ),開發(fā)工作重點才能由原來硬件的調(diào)試,軟件的調(diào)試轉(zhuǎn)變?yōu)閷τ趯嶋H應(yīng)用系統(tǒng)的性能的提 高,智能化軟件的編寫。此外只有在一個完整的、具有統(tǒng)一編程規(guī)范的操作系統(tǒng)基礎(chǔ)上使用高級語言開發(fā)出的應(yīng)用程序,才可能具有良好的可移植性,才可能被重復(fù)利用,嵌入式多任務(wù)操作系統(tǒng)是實現(xiàn)現(xiàn)代實時控制系統(tǒng)開發(fā)平臺的唯一途徑。操作系統(tǒng)與模塊化硬件設(shè)計結(jié)合起來,共同構(gòu)成一個可以重復(fù)利用的軟硬件數(shù)字系統(tǒng)平臺,除了可以最大限度的提高開發(fā)的效率、減少資源的浪費外,還可以通過長期對于該平臺的研究,來逐步優(yōu)化平臺軟硬件資源,提高其性能,并滿足日益復(fù)雜的應(yīng)用需求。?
目前大多商用嵌入式操作系統(tǒng)出于商業(yè)利益的考慮,除了使用該操作系統(tǒng)的每件產(chǎn)品要收取版稅以外,要么只提供操作系統(tǒng)核心部分二進(jìn)制文件,要么對源代碼的收費十分昂貴,對于此類操作系統(tǒng)的使用者來講,幾乎無法拿到操作系統(tǒng)的源代碼。這樣,一方面產(chǎn)品的進(jìn)一步發(fā)展受制于人,另一方面對于嵌入式應(yīng)用系統(tǒng)容易出現(xiàn)隱患,無法從根本上避免"后門"-既安全性。
對于小型實時控制系統(tǒng)來說,源代碼公開的、具有很好可移植性的、可固化可裁剪的、高穩(wěn)定性與可靠性、搶占式多任務(wù)的uC/OS-Ⅱ非常適合!代碼簡潔的uC/OS-Ⅱ已經(jīng)應(yīng)用于照像機業(yè)、醫(yī)療儀器、音響設(shè)備、發(fā)動機控制、網(wǎng)絡(luò)接入設(shè)備、高速公路電話系統(tǒng)、ATM機、工業(yè)機器人等嵌入式實時系統(tǒng)。
???? 2.3 網(wǎng)絡(luò)化是現(xiàn)代實時控制系統(tǒng)必備的特征
TCP/IP協(xié)議棧使得嵌入式系統(tǒng)可以通過Internet將通訊距離無限擴展。10M以太網(wǎng),使得大量數(shù)據(jù)的快速傳輸成為可能,這樣除了可以充分利用PC機上各種資源,完成數(shù)據(jù)的存儲、分析、統(tǒng)計工作,還可以實現(xiàn)測控系統(tǒng)間的數(shù)據(jù)交換,對于智能化、模塊化的嵌入式設(shè)備集群的實現(xiàn)提供另一種途徑。PPP協(xié)議可以通過調(diào)制解調(diào)器實現(xiàn)遠(yuǎn)程的數(shù)據(jù)交換、狀態(tài)控制等功能,為嵌入式系統(tǒng)提供更靈活的控制、監(jiān)測方式。
我們選用了Interniche公司開放源碼的嵌入式TCP/IP協(xié)議棧。Interniche使我們很容易的在uC/OS-Ⅱ的調(diào)度下為開發(fā)平臺增加了網(wǎng)絡(luò)通信和網(wǎng)絡(luò)管理等功能。由于它是專門為嵌入式系統(tǒng)而設(shè)計的,占用的系統(tǒng)資源很小。Interniche協(xié)議全部用標(biāo)準(zhǔn)C語言,除了可以運行在各種RTOS下,亦可在沒有RTOS的環(huán)境下獨立運行。此外,Interniche還在uC/OS-Ⅱ的基礎(chǔ)上專門為其嵌入式TCP/IP協(xié)議棧編寫了自己的嵌入式實時多任務(wù)操作系統(tǒng):ChronOS (既uC/OS-Ⅱ2.52)。ChronOS除了保持對已經(jīng)廣泛使用的uC/OS-Ⅱ的兼容性以外,使嵌入式TCP/IP協(xié)議棧與RTOS更加緊密的結(jié)合在一起,來滿足各種現(xiàn)代應(yīng)用對RTOS和嵌入式TCP/IP協(xié)議相結(jié)合的迫切需求。
常用的Interniche包括:
(1) 核心協(xié)議
NicheStackTM-InternicheTCP協(xié)議包含TCP,UDP,IP,TFTP,DHCP Client,ICMP,ARP,SLIP,BootTP,DNS Client。
NicheLiteTM-Internicheda單連接的微型化的TCP/IP協(xié)議,全部代碼在12K以內(nèi),它包含全部的NichestackTM所有的協(xié)議,和一個最少化的Socket API,易于移植到從8位到32位CPU上。
Niche TooLTM-菜單驅(qū)動的協(xié)議調(diào)試和測試工具(包含在NicheStack和Nichelite中)
可選擇應(yīng)用模塊:PPP,Multilink PPP,PPPoE,Telnet(Server&Client),F(xiàn)TP(Server&Client),IP Multicast,NichePOP3-它是TCP/IP上的附加模塊增加了與POP3Email服務(wù)器收郵件功能。
(2) 基于WEB管理和配置協(xié)議
WebportTM-嵌入式Web服務(wù)器,讓最終用戶通過WWW瀏覽器配置和監(jiān)控嵌入式設(shè)備而避免去編寫專用的GUI界面,這些界面多數(shù)是與你的主機OS相關(guān)的(如Win98)而且需要目標(biāo)環(huán)境大量的資源如文件系統(tǒng)。
Email Alerte--為嵌入式系統(tǒng)增加預(yù) 告和報警功能,它允許用戶向本地或遠(yuǎn)程的Email地址發(fā)出預(yù)先設(shè)置好的信息比如 某個條件下的報警信息。?
??? 3 基于ARM的現(xiàn)代實時控制系統(tǒng)開發(fā)平臺具體實現(xiàn)
??? 3.1硬件設(shè)計和測試
完成NetCARM7設(shè)計、板焊接以后,我們使用Abatron公司 JTAG仿真器BDI2000,通過編寫B(tài)DI配置文件對NetCARM7板進(jìn)行初始化,初步驗證板上CPU工作是否正常,檢查SRAM,Flash ROM是否可以正常讀寫。
???? 3.2 通過BDI2000/1000結(jié)合IAR EW集成開發(fā)環(huán)境調(diào)試各種測試軟件
在板上存儲器正常工作的基礎(chǔ)上,使用IAR公司的集成開發(fā)環(huán)境Embedded Workbench編寫出簡單的測試程序,其中包括匯編語言、C語言,只要在EW中,利用它提供的嵌入式C/C++優(yōu)化編譯器,匯編器,連接定位器就可以生成目標(biāo)機的可執(zhí)行程序,利用EW的C-SPY調(diào)試器中支持的RDI接口就可以和BDI2000/1000建立連接,直接將編寫的代碼下載到板上在線仿真。由于BDI2000仿真器是通過10兆以太網(wǎng)連接計算機,并且通過JTAG接口與目標(biāo)機相連,BDI2000與目標(biāo)機的通信速率可達(dá)16兆/秒,程序下載速率可達(dá)320K字節(jié)/秒,因此可以大大提高平臺軟件開發(fā)的效率。
??? 在初步的測試程序編寫完成以后,逐步對板上的其他外設(shè)和通訊端口進(jìn)行測試。
??? 3.3 帶有簡單調(diào)試功能的串口監(jiān)控程序
NetCARM7上的串口除了可以提供少量數(shù)據(jù)傳送、控制信息的輸入輸出以外,為了方便平臺的軟件維護(hù)我們還開發(fā)了一個基于板上串口的監(jiān)控程序,經(jīng)RS-232接口就可將PC與NetCARM7相連,完成以下功能:1).顯示處理器各狀態(tài)下寄存器的值。2).修改指定地址的SRAM、FlashROM中的內(nèi)容。3).查看指定地址的存儲器中的內(nèi)容。4).將用戶編寫的代碼下載到NetCARM7的指定地址的SRAM、Flash ROM中。5).從指定地址開始執(zhí)行用戶代碼。6).通過設(shè)置跳線,選擇從用戶放在FlashROM中的代碼直接啟動(上電后直接運行用戶的應(yīng)用程序)。7).支持用戶設(shè)置的軟件中斷,在中斷以后可以使用1、2、3項功能,用以方便用戶調(diào)試自己的代碼。這樣,在平臺用于實際的測控系統(tǒng)產(chǎn)品以后,在儀器工作現(xiàn)場只需改變跳線就可以使板上的監(jiān)控程序工作,通過串口升級整個系統(tǒng)軟件,也包括監(jiān)控程序本身,在沒有JTAG調(diào)試工具的時候,方便的對可能出現(xiàn)的比較簡單的問題進(jìn)行修復(fù)。
??? 3.4 uC/OS-Ⅱ的移植
對uC/OS-Ⅱ的移植在BDI2000和IAR EW的幫助下變得非常簡單。在完成CPU的初始化以后,首先對時鐘節(jié)拍進(jìn)行設(shè)置(10~100hz)。對AT91M40800只需編寫相應(yīng)的定時器中斷處理程序,在程序中調(diào)用操作系統(tǒng)的OSTimeTick(),并在其AIC(Advanced Interrupt Controller)中設(shè)置定時器的優(yōu)先級別,并將定時器中斷處理程序的地址放到相應(yīng)的中斷向量表中,就可以了。使定時器產(chǎn)生中斷,必須在開始多任務(wù)調(diào)度后,即在第一個任務(wù)中使能定時器;其次,對uC/OS-Ⅱ移植主要集中在includes.h,OS_CPU_A.S,OS_CPU_C.C等CPU相關(guān)文件的移植,上層任務(wù)調(diào)度部分不需要任何修改。對于多任務(wù)操作系統(tǒng),只需將復(fù)雜的應(yīng)用分成簡單的、相互聯(lián)系的任務(wù),再把各個不同優(yōu)先級的任務(wù)交給操作系統(tǒng)去管理就可以了。?
??? 3.5 Interniche協(xié)議棧的移植
BDI2000結(jié)合IAR EW在線調(diào)試對于驅(qū)動程序的編寫的幫助作用更加明顯。對于同樣具有良好可移植特性的Interniche協(xié)議棧,只需要根據(jù)以太網(wǎng)絡(luò)控制器RT8019手冊上的詳盡描述,編寫出發(fā)送包,接收包的函數(shù),以及用于以太網(wǎng)控制器的外部中斷處理程序就可以完成對Interniche的網(wǎng)絡(luò)部分的移植。由于Interniche協(xié)議棧也是可以獲得源碼的,所以對于任何網(wǎng)絡(luò)控制器都可以通過不斷的調(diào)試最終完成自己的驅(qū)動程序。此外,為了方便調(diào)試,使Niche ToolTM-菜單驅(qū)動的協(xié)議調(diào)試和測試工具工作還應(yīng)該完成對Interniche中向串口收發(fā)字符putchar(); getch()的移植,就可以在PC端使用超級終端經(jīng)過串口與NetCARM7上的Interniche基于命令行交互了。Interniche的各種協(xié)議簇可以根據(jù)需要由uC/OS-Ⅱ調(diào)度的狀態(tài)查詢?nèi)蝿?wù)。這樣uC/OS-Ⅱ就和Interniche一起構(gòu)成了現(xiàn)代實時測控系統(tǒng)開發(fā)平臺的軟件核心。
???? 3.6 開發(fā)平臺可以為實際控制系統(tǒng)實現(xiàn)各種靈活的
網(wǎng)絡(luò)應(yīng)用和遠(yuǎn)程控制
?、艌D形化操作界面(基于Interniche 的webserver,通過WWW瀏覽器實現(xiàn))
利用Interniche提供的WebportTM 讓最終用戶通過局域網(wǎng)或廣域網(wǎng)訪問嵌入式控制系統(tǒng),在WWW瀏覽器中設(shè)置測控設(shè)備工作參數(shù)、監(jiān)控其運行狀態(tài)及察看測量結(jié)果。 而避免為嵌入式測控系統(tǒng)專門去編寫專用的GUI交互界面,在不同的儀器設(shè)備中的界面只需編寫不同的html頁面,結(jié)合CGI技術(shù)就可以完成各種靈活、友好的交互功能了,這些界面只需要目標(biāo)機提供存儲空間就可以了。
⑵真正的遠(yuǎn)程控制
利用Interniche提供的PPP撥號上網(wǎng),使用Email Alerte為嵌入式測控系統(tǒng)增加預(yù)告和報警功能,測控設(shè)備就可以向遠(yuǎn)程的Email地址發(fā)出預(yù)先設(shè)置好的信息,通知測控設(shè)備的工作情況,實現(xiàn)嵌入式控制設(shè)備真正的"無人值守"遠(yuǎn)程控制。
評論
查看更多