基於ARM的實時測控系統開發平台

admin @ 2014-03-25 , reply:0

概述
       國內測控系統開發大多是幾個人以小組的形式根據不同的項目組織在一起,由於缺乏一個穩定工作的硬體基礎,整個開發工作的重點……

        國內測控系統開發大多是幾個人以小組的形式根據不同的項目組織在一起,由於缺乏一個穩定工作的硬體基礎,整個開發工作的重點大都放在調試硬體故障上。首先,所有項目的開發幾乎全部使用彙編語言,嚴重影響了程序的可讀性和可移植性,更換不同的處理器就意味著一切從頭開始,就連使用相同處理器的不同項目組之間的程序重用也很困難;而對於嵌入式應用系統應著重解決的實際問題往往無暇顧及,非常不利於我國嵌入式應用水平的提高。其次,測控系統通信介面種類比較少, 多為傳統的RS232、RS485介面,數據交換速度慢,已經不能滿足日益增長的數據傳輸需求。另外,傳統的8位單片機已經越來越不能適應日漸複雜的應用需求;友好的交互界面、網路互連功能、智能化的軟體、實時的數據處理幾乎成了現代實時測控系統的共同需求。

  我們開發了基於ARM內核處理器的NetCARM7開發板,通過在嵌入式實時多任務操作系統ìC/OS-Ⅱ上加入Interniche公司的嵌入式 TCP/IP協議棧實現了一個網路化、智能化、高性能的現代實時測控系統開發平台。此外,通過JTAG在線調試工具BDI2000 RDI for ARM和集成開發環境IAR EW的結合,大大提高了程序調試的效率。

  1 平台設計

  ARM內核處理器具有高性能、低功耗、低成本、低開發難度等一系列優點,是測控系統由8位機升級到32位機的理想選擇。此外,ARM7、ARM9、ARM10、XScale的指令兼容,已有的軟體資源和開發經驗不會由於升級到更高性能的處理器而受到巨大的損失。

  (1)平台的硬體基礎

  我們開發了NetCARM7開發板(處理器為Atmel公司的ARM7TDMI內核的AT91M40800,主頻可達40 MHz)作為中低端實時測控系統開發平台的硬體基礎。AT91M40800性能已經可以滿足一般測控系統的各種需求,功能簡單易用,雙面板就可以形成穩定硬體設計,大大降低了開發成本。板上將處理器的所有引腳引出,可以根據實際的項目需求靈活地擴展出新的應用;集成了多達2 MB的 SRAM,保證用戶代碼可以獲得最高的性能。1 MB Flash ROM用來滿足絕大多數項目的需求。板上預留了JTAG埠,通過Abatron公司的BDI在線模擬器和IAR公司的集成開發環境Embeded Workbench for ARM 可以實現各種程序的在線調試。板上提供了2個串口,還可以將處理器的UART配置成SPI,除了完成通信功能以外,還可以很容易地連接A/D變換器,滿足測控系統的需求。板上還擴展了10 M乙太網介面。在網路控制器方面,選用了低成本符合NE2000標準的RTL8019,為平台提供了網路化的硬體基礎。此外,板上還集成了液晶及行列式鍵盤介面,可以很方便地為嵌入式應用系統提供友好的用戶交互方式。硬體平台如圖1所示。

  (2)開放源碼的嵌入式多任務操作系統

  測控系統所要完成的工作越來越複雜,程序越來越龐大,需要管理的外設越來越多,只有擁有嵌入式多任務操作系統,擁有穩定工作的硬體基礎,開發工作重點才能由原來硬體的調試、軟體的 DEBUG轉變為對於實際應用系統的性能的提高、智能化軟體的編寫。此外,只有在一個完整的、具有統一編程規範的操作系統基礎上,使用高級語言開發出的應用程序,才可能具有良好的可移植性,才可能被重複利用。嵌入式多任務操作系統是實現現代實時測控系統開發平台的唯一途徑。操作系統與模塊化硬體設計結合起來,共同構成一個可以重複利用的軟硬體數字系統平台,除了可以最大限度地提高開發的效率、減少資源的浪費外,還可以通過長期對於該平台的研究,逐步優化平台軟硬體資源,提高其性能,並滿足日益複雜的應用需求。

  目前大多商用嵌入式操作系統出於商業利益的考慮,除了使用該操作系統的每件產品要收取版稅以外,要麼只提供操作系統核心部分二進位文件,要麼對源代碼的收費十分昂貴,對於此類操作系統的使用者來講,幾乎無法拿到操作系統的源代碼。這樣,一方面產品的進一步發展受制於人;另一方面對於嵌入式應用系統容易出現隱患,無法從根本上避?quot;後門"。只有對開放源代碼的操作系統進行不斷的理解、改造、優化,才有利於我國嵌入式開發水平的穩步提高。

  對於小型實時測控系統來說,源代碼公開的、具有很好可移植性的、可固化可裁剪的、高穩定性與可*性、搶佔式多任務的ìC/OS-Ⅱ非常適合!代碼簡潔的ìC/OS-Ⅱ已經應用於照像機業、醫療儀器、音響設備、發動機控制、網路接入設備、高速公路電話系統、ATM機、工業機器人等嵌入式實時系統。

  (3)網路化

   TCP/IP協議棧使得嵌入式系統可以通過Internet將通信距離無限擴展。10M乙太網使得大量數據的快速傳輸成為可能。這樣,除了可以充分利用 PC機上各種資源,完成數據的存儲、分析、統計工作外,還可以實現測控系統間的數據交換,對於智能化、模塊化的嵌入式設備集群的實現提供了另一種途徑。 PPP協議,可以通過數據機實現遠程的數據交換、狀態控制等功能,為嵌入式系統提供了更靈活的控制、監測方式。

  我們選用了 Interniche公司(http://www.iniche.com)開放源碼的嵌入式TCP/IP協議棧。Interniche使我們很容易在 ìC/OS-Ⅱ的調度下為開發平台增加網路通信和網路管理等功能。由於它是專門為嵌入式系統而設計的,佔用的系統資源很小。Interniche協議全部用標準C語言。它除了可以運行在各種RTOS下,如ìC/OS、VRTX、CMX、Threadx等,還可以在沒有RTOS的環境下獨立運行。此外, Interniche還在ìC/OS-Ⅱ的基礎上專門為其嵌入式TCP/IP協議棧編寫了自己的嵌入式實時多任務操作系統:ChronOS。 ChronOS除了保持對已經廣泛使用的ìC/OS-Ⅱ的兼容性以外,還使嵌入式TCP/IP協議棧與RTOS更加緊密地結合在一起,來滿足各種現代應用對RTOS和嵌入式TCP/IP協議相結合的迫切需求。

  常用的Interniche包括:

  ① 核心協議。

  ◇ NicheStackTM--InternicheTCP協議包含TCP、UDP、IP、TFTP、DHCP Client、ICMP、ARP、SLIP、BootTP、DNS Client。

  ◇ Niche ToolTM--菜單驅動的協議調試和測試工具(包含在NicheStack和Nichelite中)。

  ◇ NicheLiteTM--Interniche微型化的TCP/IP協議,全部代碼在12KB以內;它包含全部的     NichestackTM所有的協議和1個最少化的Socket API,易於移植到從8位到32位CPU上。

  可選擇應用模塊: PPP、Multilink PPP、PPPoE、Telnet(Server&Client)、FTP(Server&Client)、IP Multicast、NichePOP3。它使TCP/IP上的附加模塊增加了POP3 Email伺服器收郵件功能。

  ② 基於WEB管理和配置協議。

  ◇ WebportTM--嵌入式Web伺服器,讓最終用戶通過WWW瀏覽器配置和監控嵌入式設備而避免去編寫專用的GUI界面。這些界面多數是與主機OS相關的(如Win98),而且需要目標環炒罅康淖試矗?如文件系統??br>   ◇ Email Alerte--為嵌入式系統增加預告和報警功能。它允許用戶向本地或遠程的Email地址發出預先設置好的信息,比如某個條件下的報警信息。

  2 開發平台的具體實現

  (1)開發測試板的硬體測試

  完成NetCARM7設計、板焊接以後,使用Abatron公司 (http://www.abatron.ch) JTAG模擬器BDI2000,通過編寫BDI配置文件對NetCARM7板進行初始化,初步驗證板上CPU工作是否正常,檢查SRAM、Flash ROM是否可以正常讀/寫。

  (2)BDI2000結合IAR EW的軟體測試

  在板上存儲器正常工作的基礎上,使用IAR公司 (http://www.iar.com) 的集成開發環境Embedded Workbench編寫出簡單的測試程序,其中包括彙編語言、C語言。只要在EW中利用它提供的嵌入式C/C++優化編譯器、彙編器、連接定位器,就可以生成目標機的可執行程序;利用EW的C-SPY調試器中支持的RDI介面,就可以和BDI2000建立連接,直接將編寫的代碼下載到板上在線模擬。由於 BDI2000模擬器是通過10M乙太網連接計算機,並且通過JTAG介面與目標機相連,BDI2000與目標機的通信速率可達16Mb/s,程序下載速率可達320 KB/s,因此可以大大提高平台軟體開發的效率。

  在初步的測試程序編寫完成以後,逐步對板上的其它外設和通信埠進行測試。

  (3)串口監控程序

  NetCARM7上的串口除了可以提供少量數據傳送和控制信息的輸入/輸出以外,為了方便平台的軟體維護,我們還開發了一個基於板上串口的監控程序,經 RS232介面就可將PC與NetCARM7相連,完成以下功能:① 顯示處理器各狀態下寄存器的值;② 修改指定地址的SRAM、FlashROM中的內容;③ 查看指定地址的存儲器中的內容;④ 將用戶編寫的代碼下載到NetCARM7的指定地址的SRAM、Flash ROM中;⑤ 從指定地址開始執行用戶代碼;⑥ 通過設置跳線,選擇從用戶放在FlashROM中的代碼直接啟動(上電后直接運行用戶的應用程序);⑦ 支持用戶設置的軟體中斷,在中斷以後可以使用①、②、③項功能,用以方便用戶調試自己的代碼。這樣,在平台用於實際的測控系統產品以後,在儀器工作現場只需改變跳線就可以使板上的監控程序工作,通過串口升級整個系統軟體,也包括監控程序本身,在沒有JTAG調試工具的時候,方便地對可能出現的比較簡單的問題進行修復。

  (4)ìC/OS-Ⅱ的移植

  對ìC/OS-Ⅱ的移植在BDI2000和IAR EW的幫助下變得非常簡單。在完成CPU的初始化以後,首先對時鐘節拍進行設置(10~100Hz)。對AT91M40800隻需編寫相應的定時器中斷處理程序,在程序中調用操作系統的OSTimeTick(),並在其AIC(Advanced Interrupt Controller )中設置定時器的優先順序別,並將定時器中斷處理程序的地址放到相應的中斷向量表中即可。使定時器產生中斷,必須在開始多任務調度后,即在第一個任務中使能定時器。其次,對ìC/OS-Ⅱ移植主要集中在includes.h、OS_CPU_A.S、OS_CPU_C.C等CPU相關文件的移植,上層任務調度部分不需要任何修改。對於多任務操作系統,只需將複雜的應用分成簡單的、相互聯繫的任務,再把各個不同優先順序的任務交給操作系統去管理就可以了。

  (5)Interniche嵌入式協議棧的移植

  BDI2000結合IAR EW在線調試對於驅動程序的編寫的幫助作用更加明顯。對於同樣具有良好可移植特性的Interniche協議棧,只需要根據乙太網控制器RTL8019手冊上的詳盡描述,編寫出發送包、接收包的函數,以及用於乙太網控制器的外部中斷處理程序就可以完成對Interniche的網路部分的移植。由於 Interniche協議棧也是可以獲得源碼的,所以對於任何網路控制器都可以通過不斷的調試最終完成自己的驅動程序。此外,為了方便調試,使Niche ToolTM工作,還應該完成對Interniche中向串口收發字元putchar(); getch()的移植,就可以在PC端使用超級終端經過串口與NetCARM7上的Interniche 基於命令行交互了。Interniche的各種協議簇可以根據需要由ìC/OS-Ⅱ調度的狀態查詢任務。這樣ìC/OS-Ⅱ就和Interniche一起構成了現代實時測控系統開發平台的軟體核心。

  3 開發平台靈活的網路應用

  (1)圖形化操作界面

  圖形化操作界面是基於Interniche 的Webserver,通過WWW瀏覽器實現的。

利用Interniche提供的WebportTM,讓最終用戶通過區域網或廣域網訪問嵌入式測控系統,在WWW瀏覽器中設置測控設備工作參數,監控其運行狀態及察看測量結果,而避免為嵌入式測控系統專門去編寫專用的GUI交互界面。在不同的儀器設備中的界面只需編寫不同的HTML頁面,結合CGI技術就可以完成各種靈活、友好的交互功能了。這些界面只需要目標機提供存儲空間就可以了。

  (2)真正的遠程控制

  利用Interniche提供的PPP撥號上網,使用Email Alerte為嵌入式測控系統增加預告和報警功能,測控設備就可以向遠程的Email地址發出預先設置好的信息,通知測控設備的工作情況,實現嵌入式測控設備真正的"無人值守"遠程控制。

  國內測控系統開發大多是幾個人以小組的形式根據不同的項目組織在一起,由於缺乏一個穩定工作的硬體基礎,整個開發工作的重點大都放在調試硬體故障上。首先,所有項目的開發幾乎全部使用彙編語言,嚴重影響了程序的可讀性和可移植性,更換不同的處理器就意味著一切從頭開始,就連使用相同處理器的不同項目組之間的程序重用也很困難;而對於嵌入式應用系統應著重解決的實際問題往往無暇顧及,非常不利於我國嵌入式應用水平的提高。其次,測控系統通信介面種類比較少, 多為傳統的RS232、RS485介面,數據交換速度慢,已經不能滿足日益增長的數據傳輸需求。另外,傳統的8位單片機已經越來越不能適應日漸複雜的應用需求;友好的交互界面、網路互連功能、智能化的軟體、實時的數據處理幾乎成了現代實時測控系統的共同需求。

  我們開發了基於ARM 內核處理器的NetCARM7開發板,通過在嵌入式實時多任務操作系統ìC/OS-Ⅱ上加入Interniche公司的嵌入式TCP/IP協議棧實現了一個網路化、智能化、高性能的現代實時測控系統開發平台。此外,通過JTAG在線調試工具BDI2000 RDI for ARM和集成開發環境IAR EW的結合,大大提高了程序調試的效率。

  1 平台設計

  ARM內核處理器具有高性能、低功耗、低成本、低開發難度等一系列優點,是測控系統由8位機升級到32位機的理想選擇。此外,ARM7、ARM9、ARM10、XScale的指令兼容,已有的軟體資源和開發經驗不會由於升級到更高性能的處理器而受到巨大的損失。

  (1)平台的硬體基礎

  我們開發了NetCARM7開發板(處理器為Atmel公司的ARM7TDMI內核的AT91M40800,主頻可達40 MHz)作為中低端實時測控系統開發平台的硬體基礎。AT91M40800性能已經可以滿足一般測控系統的各種需求,功能簡單易用,雙面板就可以形成穩定硬體設計,大大降低了開發成本。板上將處理器的所有引腳引出,可以根據實際的項目需求靈活地擴展出新的應用;集成了多達2 MB的 SRAM,保證用戶代碼可以獲得最高的性能。1 MB Flash ROM用來滿足絕大多數項目的需求。板上預留了JTAG埠,通過Abatron公司的BDI在線模擬器和IAR公司的集成開發環境Embeded Workbench for ARM 可以實現各種程序的在線調試。板上提供了2個串口,還可以將處理器的UART配置成SPI,除了完成通信功能以外,還可以很容易地連接A/D變換器,滿足測控系統的需求。板上還擴展了10 M乙太網介面。在網路控制器方面,選用了低成本符合NE2000標準的RTL8019,為平台提供了網路化的硬體基礎。此外,板上還集成了液晶及行列式鍵盤介面,可以很方便地為嵌入式應用系統提供友好的用戶交互方式。硬體平台如圖1所示。

  (2)開放源碼的嵌入式多任務操作系統

  測控系統所要完成的工作越來越複雜,程序越來越龐大,需要管理的外設越來越多,只有擁有嵌入式多任務操作系統,擁有穩定工作的硬體基礎,開發工作重點才能由原來硬體的調試、軟體的 DEBUG轉變為對於實際應用系統的性能的提高、智能化軟體的編寫。此外,只有在一個完整的、具有統一編程規範的操作系統基礎上,使用高級語言開發出的應用程序,才可能具有良好的可移植性,才可能被重複利用。嵌入式多任務操作系統是實現現代實時測控系統開發平台的唯一途徑。操作系統與模塊化硬體設計結合起來,共同構成一個可以重複利用的軟硬體數字系統平台,除了可以最大限度地提高開發的效率、減少資源的浪費外,還可以通過長期對於該平台的研究,逐步優化平台軟硬體資源,提高其性能,並滿足日益複雜的應用需求。

  目前大多商用嵌入式操作系統出於商業利益的考慮,除了使用該操作系統的每件產品要收取版稅以外,要麼只提供操作系統核心部分二進位文件,要麼對源代碼的收費十分昂貴,對於此類操作系統的使用者來講,幾乎無法拿到操作系統的源代碼。這樣,一方面產品的進一步發展受制於人;另一方面對於嵌入式應用系統容易出現隱患,無法從根本上避?quot;後門"。只有對開放源代碼的操作系統進行不斷的理解、改造、優化,才有利於我國嵌入式開發水平的穩步提高。

  對於小型實時測控系統來說,源代碼公開的、具有很好可移植性的、可固化可裁剪的、高穩定性與可*性、搶佔式多任務的ìC/OS-Ⅱ非常適合!代碼簡潔的ìC/OS-Ⅱ已經應用於照像機業、醫療儀器、音響設備、發動機控制、網路接入設備、高速公路電話系統、ATM機、工業機器人等嵌入式實時系統。

  (3)網路化

   TCP/IP協議棧使得嵌入式系統可以通過Internet將通信距離無限擴展。10M乙太網使得大量數據的快速傳輸成為可能。這樣,除了可以充分利用 PC機上各種資源,完成數據的存儲、分析、統計工作外,還可以實現測控系統間的數據交換,對於智能化、模塊化的嵌入式設備集群的實現提供了另一種途徑。 PPP協議,可以通過數據機實現遠程的數據交換、狀態控制等功能,為嵌入式系統提供了更靈活的控制、監測方式。




[admin via 研發互助社區 ] 基於ARM的實時測控系統開發平台已經有2149次圍觀

http://cocdig.com/docs/show-post-42944.html