于A(yíng)RM7+μC/OSII的數據采集系統設計
摘 要:介紹了一種用ARM7+μC/OSII設計的數據采集系統。給出了系統原理框圖,實(shí)現了將嵌入式操作系統植入該系統中,列出了軟件設計的要點(diǎn)。
關(guān)鍵詞:ARM7;μC/OSII;嵌入式操作系統
在一些工業(yè)現場(chǎng)中,設備長(cháng)時(shí)間運行容易出現故障,為了監控這些設備,通常利用數據采集裝置采集他們運行時(shí)的數據并送給PC機,通過(guò)運行在PC機上的特定軟件對這些數據進(jìn)行分析,以此判斷當前運行設備的狀況,進(jìn)而采取相應措施。當前常用的數據采集裝置,在其系統軟件設計中,多采用單任務(wù)順序機制。這樣就存在系統安全性差的問(wèn)題。這對于穩定性、實(shí)時(shí)性要求很高的數據采集裝置來(lái)說(shuō)是不允許的,因此有必要引入嵌入式操作系統。筆者以μC/OSII為操作系統平臺,基于A(yíng)RM7系列處理器,對一種高性能的數據采集系統開(kāi)發(fā)進(jìn)行了探索。
1μC/OSII嵌入式操作系統簡(jiǎn)介
嵌入式操作系統μC/OSII(microcontroller operating system)是專(zhuān)為微控制器系統和軟件開(kāi)發(fā)而設計的公開(kāi)源代碼的搶占式實(shí)時(shí)多任務(wù)操作系統內核,是一段微控制器啟動(dòng)后首先執行的背景程序,作為整個(gè)系統的框架貫穿系統運行的始終。對于對實(shí)時(shí)性和穩定性要求很高的數據采集系統來(lái)說(shuō),引入μC/OSII無(wú)疑將大大改善其性能。
μC/OSII的特點(diǎn)可以概括為以下幾個(gè)方面:公開(kāi)源代碼,代碼結構清晰、明了,注釋詳盡,組織有條理,可移植性好,可裁剪,可固化。內核屬于搶占式,最多可以管理60個(gè)任務(wù)。μC/OSII自1992年的第一版(μC/OS)以來(lái)已經(jīng)有好幾百個(gè)應用,是一個(gè)經(jīng)實(shí)踐證明好用且穩定可靠的內核。目前國內對μC/OSII的研究和應用都很多。
2系統基本工作原理
應用時(shí),數據采集系統置于被監控的設備處,通過(guò)傳感器對設備的電壓或者電流信號進(jìn)行采樣、保持,并送入A/D轉換器變成數字信號,然后將該信號送到FIFO中。當FIFO中存放的數據到了一定數目時(shí),由ARM7從FIFO中讀出,然后通過(guò)ARM7的以太網(wǎng)接口或者RS232送給上位機??紤]到要監控的設備可能會(huì )很多,所以設計了多路采集通道,他們經(jīng)過(guò)模擬開(kāi)關(guān)后再進(jìn)入A/D轉換器。CPLD是整個(gè)系統的控制核心,他控制采集通道的切換、A/D轉換器的啟/停、轉換后的數據在FIFO中的存放地址發(fā)生器、產(chǎn)生中斷請求以通知ARM7讀取存放在FIFO中的數據等。
3系統硬件結構
系統的基本結構框圖如圖1所示。該系統采用了Samsung公司的S3C4510B作為系統與上位機溝通的橋梁,S3C4510B是基于以太網(wǎng)應用系統的高性?xún)r(jià)比16/32位RISC微控制器,他有如下幾個(gè)主要特點(diǎn):
硬件方面內含一個(gè)由ARM公司設計的16/32位ARM7TDMI RISC處理器核,ARM7TDMI為低功耗、高性能的16/32核,最適合用于對價(jià)格及功耗敏感的應用場(chǎng)合。S3C4510B通過(guò)在A(yíng)RM 7TDMI核內容基礎上擴展一系列完整地通用外圍器件。
片上資源包括2個(gè)帶緩沖描述符(buffer descriptor)的HDLC通道;2個(gè)UART通道;2個(gè)GD M A通道;2個(gè)32位定時(shí)器;18個(gè)可編程的I/O口。還有中斷控制器;DRAM/SDRAM控制器;ROM/S RAM和FLASH控制器;系統管理器;1個(gè)內部32位系統總線(xiàn)仲裁器;1個(gè)外部存儲器控制器等片內的邏輯控制電路。
這些為μC/OSII的移植提供了優(yōu)良的物理資源。
軟件支持方面他有配套的代碼編輯調試環(huán)境ADS12和JTAG在線(xiàn)調試功能,使S3C4510B芯片軟件可以直接用C編寫(xiě),這就使μC/OSII的植入成為可能。
12位高速A/D轉換電路采用Analog Devices的AD574,該電路輸出具有三態(tài)鎖存功能。預處理電路包括了電流電壓互感器、隔離電路和同步采樣電路,他可以將信號轉換成與AD574相匹配的量值,供后續處理。通訊電路采用常用的以太網(wǎng)接口與上位機相連,而232接口可作為備用,這樣該裝置既可作為便攜式系統使用,也可通過(guò)網(wǎng)絡(luò )來(lái)對設備實(shí)施實(shí)時(shí)監控。
4軟件設計部分
軟件部分要分別編寫(xiě)S3C4510B部分的程序和CPLD控制程序。前者可分為μC/OSII的移植和各個(gè)應用程序的編寫(xiě),后者用VHDL語(yǔ)言實(shí)現。
對于S3C4510B部分,根據整個(gè)裝置實(shí)現的功能和對他的要求進(jìn)行系統任務(wù)分割,并根據實(shí)際需要為各個(gè)任務(wù)分配優(yōu)先級。系統大致可分為如下幾個(gè)任務(wù):初始化CPLD控制參數;對FI FO的讀??;與上位機的TCP/IP通訊;與上位機的串口通訊。對應每個(gè)任務(wù),需要編寫(xiě)相應的應用程序,軟件設計部分的關(guān)鍵技術(shù)有:
(1)μC/OSII內核向S3C4510B中的移植,要根據處理器的特點(diǎn)合理地修改μC/OS II的3個(gè)與處理器相關(guān)的文件:OS_CPUH,OS_CPU_AASM,OS_CPU_C.C。主要是將文件中的匯編指令,改為ARM7的匯編指令,并根據CPU的特點(diǎn)對文件中寄存器的初值進(jìn)行改寫(xiě)。
(2)內存配置問(wèn)題。對于存儲器容量的設計,要綜合考慮μC/OSII內核代碼和應用程序代碼的大小。每個(gè)任務(wù)是獨立運行的,必須給每個(gè)任務(wù)提供單獨的??臻g(RAM),RAM總量的計算公式為:
RAM總量=應用程序的RAM需求+內核數據區的RAM需求+各任務(wù)棧需求之總和+最多中斷嵌套所需堆棧
(3)TCP/IP協(xié)議在μC/OSII中的實(shí)現。為了滿(mǎn)足嵌入式設備與Internet網(wǎng)絡(luò )直接交換信息的要求,在μC/OSII中又移植了LwIP協(xié)議棧。
LwIP是瑞士計算機科學(xué)院(Swedish Institute of Computer Science)的Adam Dunkels等開(kāi)發(fā)的一套用于嵌入式系統的開(kāi)放源代碼TCP/IP協(xié)議棧。LwIP的含義是Light Weight(輕型)IP協(xié)議。LwIP可以移植到操作系統上,也可以在無(wú)操作系統的情況下獨立運行。LwIP TC P/IP實(shí)現的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎上減少對RAM的占用,一般他只需要幾十k的RAM和40 k左右的ROM就可以運行,這使LwIP協(xié)議棧適合在低端嵌入式系統中使用。
LwIP的特性有:支持多網(wǎng)絡(luò )接口下的IP轉發(fā);支持ICMP協(xié)議;包括實(shí)驗性擴展的的UDP(用戶(hù)數據 報協(xié)議);包括阻塞控制、RTT估算、快速恢復和快速轉發(fā)的TCP(傳輸控制協(xié)議);提供專(zhuān)門(mén)的內部回調接口(raw API)用于提高應用程序性能。
LwIP可以很容易地在μC/OSII的調度下,為系統增加網(wǎng)絡(luò )通信和網(wǎng)絡(luò )管理功能。LwIP協(xié)議棧在設計時(shí)就考慮到了將來(lái)的移植問(wèn)題,他把所有與硬件,OS,編譯器相關(guān)的部份獨立出來(lái),放在/src/arch目錄下。因此LwIP在μC/OSII上的實(shí)現就是修改這個(gè)目錄下的文件,其他的文件一般不應該修改。在驅動(dòng)中主要是根據S3C4510B內的以太網(wǎng)控制特殊功能寄存器,編寫(xiě)網(wǎng)絡(luò )接口的處發(fā)送包、接收包函數,初始化以及用于以太網(wǎng)控制器的外部中斷服務(wù)程序。
5結語(yǔ)
采用基于A(yíng)RM7的S3C4510B嵌入式微處理器,可以使系統小型化,便于提高性能以及與各種外設連接擴展,同時(shí)降低了成本。μC/OSII作為一個(gè)源代碼公開(kāi)的操作系統,在具體應用種穩定可靠。本系統采用ARM7+μC/OSII開(kāi)發(fā)設計,具有精度高、運行穩定、實(shí)時(shí)性好、抗干擾能力強、性?xún)r(jià)比高的特點(diǎn),可以在各種工業(yè)場(chǎng)合中廣泛應用,達到了設計的初衷。
tcp/ip相關(guān)文章:tcp/ip是什么
評論