于ARM7+μC/OSII的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要:介紹了一種用arm7+μc/osii設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)。給出了系統(tǒng)原理框圖,實(shí)現(xiàn)了將嵌入式操作系統(tǒng)植入該系統(tǒng)中,列出了軟件設(shè)計(jì)的要點(diǎn)。
關(guān)鍵詞:arm7;μc/osii;嵌入式操作系統(tǒng) 在一些工業(yè)現(xiàn)場(chǎng)中,設(shè)備長(zhǎng)時(shí)間運(yùn)行容易出現(xiàn)故障,為了監(jiān)控這些設(shè)備,通常利用數(shù)據(jù)采集裝置采集他們運(yùn)行時(shí)的數(shù)據(jù)并送給pc機(jī),通過運(yùn)行在pc機(jī)上的特定軟件對(duì)這些數(shù)據(jù)進(jìn)行分析,以此判斷當(dāng)前運(yùn)行設(shè)備的狀況,進(jìn)而采取相應(yīng)措施。當(dāng)前常用的數(shù)據(jù)采集裝置,在其系統(tǒng)軟件設(shè)計(jì)中,多采用單任務(wù)順序機(jī)制。這樣就存在系統(tǒng)安全性差的問題。這對(duì)于穩(wěn)定性、實(shí)時(shí)性要求很高的數(shù)據(jù)采集裝置來說是不允許的,因此有必要引入嵌入式操作系統(tǒng)。筆者以μc/osii為操作系統(tǒng)平臺(tái),基于arm7系列處理器,對(duì)一種高性能的數(shù)據(jù)采集系統(tǒng)開發(fā)進(jìn)行了探索。 1μc/osii嵌入式操作系統(tǒng)簡(jiǎn)介
嵌入式操作系統(tǒng)μc/osii(microcontroller operating system)是專為微控制器系統(tǒng)和軟件開發(fā)而設(shè)計(jì)的公開源代碼的搶占式實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核,是一段微控制器啟動(dòng)后首先執(zhí)行的背景程序,作為整個(gè)系統(tǒng)的框架貫穿系統(tǒng)運(yùn)行的始終。對(duì)于對(duì)實(shí)時(shí)性和穩(wěn)定性要求很高的數(shù)據(jù)采集系統(tǒng)來說,引入μc/osii無疑將大大改善其性能。
μc/osii的特點(diǎn)可以概括為以下幾個(gè)方面:公開源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好,可裁剪,可固化。內(nèi)核屬于搶占式,最多可以管理60個(gè)任務(wù)。μc/osii自1992年的第一版(μc/os)以來已經(jīng)有好幾百個(gè)應(yīng)用,是一個(gè)經(jīng)實(shí)踐證明好用且穩(wěn)定可靠的內(nèi)核。目前國內(nèi)對(duì)μc/osii的研究和應(yīng)用都很多。 2系統(tǒng)基本工作原理
應(yīng)用時(shí),數(shù)據(jù)采集系統(tǒng)置于被監(jiān)控的設(shè)備處,通過傳感器對(duì)設(shè)備的電壓或者電流信號(hào)進(jìn)行采樣、保持,并送入a/d轉(zhuǎn)換器變成數(shù)字信號(hào),然后將該信號(hào)送到fifo中。當(dāng)fifo中存放的數(shù)據(jù)到了一定數(shù)目時(shí),由arm7從fifo中讀出,然后通過arm7的以太網(wǎng)接口或者rs232送給上位機(jī)??紤]到要監(jiān)控的設(shè)備可能會(huì)很多,所以設(shè)計(jì)了多路采集通道,他們經(jīng)過模擬開關(guān)后再進(jìn)入a/d轉(zhuǎn)換器。cpld是整個(gè)系統(tǒng)的控制核心,他控制采集通道的切換、a/d轉(zhuǎn)換器的啟/停、轉(zhuǎn)換后的數(shù)據(jù)在fifo中的存放地址發(fā)生器、產(chǎn)生中斷請(qǐng)求以通知arm7讀取存放在fifo中的數(shù)據(jù)等。 3系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)的基本結(jié)構(gòu)框圖如圖1所示。該系統(tǒng)采用了samsung公司的s3c4510b作為系統(tǒng)與上位機(jī)溝通的橋梁,s3c4510b是基于以太網(wǎng)應(yīng)用系統(tǒng)的高性價(jià)比16/32位risc微控制器,他有如下幾個(gè)主要特點(diǎn):
硬件方面內(nèi)含一個(gè)由arm公司設(shè)計(jì)的16/32位arm7tdmi risc處理器核,arm7tdmi為低功耗、高性能的16/32核,最適合用于對(duì)價(jià)格及功耗敏感的應(yīng)用場(chǎng)合。s3c4510b通過在arm 7tdmi核內(nèi)容基礎(chǔ)上擴(kuò)展一系列完整地通用外圍器件。
片上資源包括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控制器;系統(tǒng)管理器;1個(gè)內(nèi)部32位系統(tǒng)總線仲裁器;1個(gè)外部存儲(chǔ)器控制器等片內(nèi)的邏輯控制電路。
這些為μc/osii的移植提供了優(yōu)良的物理資源。
軟件支持方面他有配套的代碼編輯調(diào)試環(huán)境ads12和jtag在線調(diào)試功能,使s3c4510b芯片軟件可以直接用c編寫,這就使μc/osii的植入成為可能。
12位高速a/d轉(zhuǎn)換電路采用analog devices的ad574,該電路輸出具有三態(tài)鎖存功能。預(yù)處理電路包括了電流電壓互感器、隔離電路和同步采樣電路,他可以將信號(hào)轉(zhuǎn)換成與ad574相匹配的量值,供后續(xù)處理。通訊電路采用常用的以太網(wǎng)接口與上位機(jī)相連,而232接口可作為備用,這樣該裝置既可作為便攜式系統(tǒng)使用,也可通過網(wǎng)絡(luò)來對(duì)設(shè)備實(shí)施實(shí)時(shí)監(jiān)控。 4軟件設(shè)計(jì)部分
軟件部分要分別編寫s3c4510b部分的程序和cpld控制程序。前者可分為μc/osii的移植和各個(gè)應(yīng)用程序的編寫,后者用vhdl語言實(shí)現(xiàn)。
對(duì)于s3c4510b部分,根據(jù)整個(gè)裝置實(shí)現(xiàn)的功能和對(duì)他的要求進(jìn)行系統(tǒng)任務(wù)分割,并根據(jù)實(shí)際需要為各個(gè)任務(wù)分配優(yōu)先級(jí)。系統(tǒng)大致可分為如下幾個(gè)任務(wù):初始化cpld控制參數(shù);對(duì)fi fo的讀?。慌c上位機(jī)的tcp/ip通訊;與上位機(jī)的串口通訊。對(duì)應(yīng)每個(gè)任務(wù),需要編寫相應(yīng)的應(yīng)用程序,軟件設(shè)計(jì)部分的關(guān)鍵技術(shù)有:
?。?)μc/osii內(nèi)核向s3c4510b中的移植,要根據(jù)處理器的特點(diǎn)合理地修改μc/os ii的3個(gè)與處理器相關(guān)的文件:os_cpuh,os_cpu_aasm,os_cpu_c.c。主要是將文件中的匯編指令,改為arm7的匯編指令,并根據(jù)cpu的特點(diǎn)對(duì)文件中寄存