《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于AVR的鉛酸蓄電池管理系統設計
基于AVR的鉛酸蓄電池管理系統設計
胡永華 楊金明
摘要: 本文摒棄了傳統單片機數據采集,采用移植性好的嵌入式 uC/OS-II系統,具有后續開發簡單,系統穩定性好,可靠性高等特點。本設計可以很容易得移植到其他數據采集系統當中去。
Abstract:
Key words :

1. 引言

在工業過程或實驗室里,經常需要對多種信號進行同時采集及監測,以便實現性能分析、過程控制、系統恢復等目的。目前,常用的數據采集裝置,多采用單片機實現,軟件多采用單任務順序機制,這使得系統不僅處理能力有限,而且存在穩定性差的問題。以嵌入式計算機為核心的嵌入式系統由于具有體積小、性能好、功耗低、可靠性高以及面向行業應用的突出特征,成為繼 I T網絡技術之后,又一個新的技術發展方向 [1]。

本文以嵌入式 S3C2410為核心芯片,設計和實現了一種高速、高精度且具有一定處理能力的數據采集處理系統,并將其應用于工業過程水位和溫度的實時監測。

2. 系統總體設計

本設計采用以 ARM9為核心的 S3C2410作為數據采集與處理的核心,主要包括以下四個模塊:信號采集、數據存儲、數據顯示、數據傳輸。模擬信號通過放大電路再輸入到 S3C2410處理器片內 A/D轉換器,經過處理結果以動態波形的形式顯示在 LCD上,并用觸摸屏控制顯示方式。同時通過串口發送給 PC,在 PC上用 VC++編寫的程序對數據進行顯示、存儲等后續處理。系統結構如圖 1所示。

3. 硬件電路設計

溫度和水位的測量用的是變送器。以溫度變送器為例,本系統選用的是北京賽億凌科技有限公司的 STY系列一體化溫度變送器,它的測量范圍是 0~150℃,它的輸出是一個與被測溫度成線性關系的 4~20mA的恒流信號。

為了滿足測量要求,在溫度變送器的兩個輸出端之間接一個電阻,使其輸出的電流信號轉換成電壓信號,考慮到 S3C2410內部 A/D轉換器的輸入范圍是 0~3.3v,因此選用 165 Ω的電阻。電路連接圖如圖 2所示。

由圖 2可知,溫度變送器產生的 4~20mA電流信號,經電路轉化變成了 0.66~3.3V的電壓信號,此電壓信號傳遞給 S3C2410內部的 A/D轉換器。采樣溫度值可以這樣計算,設采樣得到的電壓值為UT,單位為 V,對應溫度為 T,單位為℃,則 T的值可由式( 1)求得:

4. 系統軟件設計

軟件設計主要是 uC/OS-II移植和任務的編寫。uC/OS-II是一個免費的、可裁減、源碼開放、結構小巧、搶占式的實時多任務嵌入式內核,主要面向中小型嵌入式系統,具有執行效率高、占用空間小、可移植性強、實時性能優良和可擴展性強等特點[2]。

為了方便移植,絕大部分 uC/OS-II的代碼是用 ANSI C語言編寫的;但是仍需要用 C語言和匯編語言寫一些與處理器硬件相關的代碼,這是因為uC/OS-II在讀/寫處理器寄存器時,只能通過匯編語言來實現。與處理器相關的代碼包括 OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C三個文件,所以移植的主要任務就是修改這三個文件。

(1) 在修改 OS_CPU.H中與處理器和編譯器相關的代碼時要注意幾點 [3]:

(a)不同的處理器有不同的字長,uC/OS-II為了確保其可移植性,不使用 C的int,short,long等數據類型,因為這些數據類型是與編譯器相關的,是不可移植的。

(b)修改 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()兩個宏。uC/OS-II需要先禁止中斷再訪問代碼的臨界區,并且在訪問完畢后重新允許中斷。OS_ENTER_CRITICAL()的功能是關中斷,在 S3C2410上通過 OS_CPU_A.ASM中的 INTS_OFF()函數來實現。OS_EXIT_CRITICAL()用于開中斷,通過 OS_CPU_A.ASM中的INTS_ON()函數來實現。

(c)OS_STK_GROWTH用來定義堆棧生長方式, 置 0表示堆棧從下往上增長,置 1表示

堆棧從上向下增長。而在本設計中使用的是堆棧從上向下增長 S3C2410處理器,所以置1。(d)OS_TASK_SW()是一個任務切換宏,用于從低優先級任務切換到高優先級任務。它將任務切換函數OSCtxSw()封裝起來。

(2) 修改OS_CPU_C.C中與操作系統相關的OSTaskStkInit()函數

OSTaskStkInit()用于任務堆棧初始化,OSTaskCreate()和 OSTaskcreateExt()通過調用OSTaskStkInit()來初始化任務的堆棧結構。圖 3顯示了OSTaskStkInit()在建立任務時,任務堆棧初始化的形式。

(3) 編寫OS_CPU_A.ASM中4個與處理器相關的函數

OSStartHighRdy( )在程序中被 OSStart( )函數調用,作用是使就緒任務中優先級最高的任務開始運行。 OSCtxSw()是任務級的任務切換函數,通過執行軟中斷指令,或者依據處理器的不同,執行TPAR(陷阱)指令來實現。OSIntCtxSw()是中斷級任務切換函數,通過調用它,可以在 ISR中執行任務切換功能。OSTickISR()為 uC/OS-II提供一個周期性的時鐘源,來實現時間的延遲和超時功能。

5. 應用任務設計

系統流程圖如圖4所示。

(1) 初始化uC/OS-II系統環境

圖 4的左半部分所完成的功能是啟動操作系統,并創建 Main_Task和 tch_Task兩個任務。右半部分是 Main_Task()和 tch_Task()的主要內容,這是本設計的重點部分。模擬信號的采集,顯示是在 Main_Task()中完成的,而對顯示方式的控制是由tch_Task()來完成的。

(2) 編程實現 A/D轉換

模擬數據的采集是在 Main_Task( )中通過調用函數 void init_ADdevice()和 intGetADresult(int channel)實現的。模擬信號經 A/D轉換后的一個 10位數字量,通過式(1)
(2)中將其轉換成實際的數據。式中的 3.3表示模擬量的上限值,1023是經(2 10-1)計算得來的,經計算后的數據就是實際的模擬量值。數據經濾波后分別存放在兩個變量中,用于下面的繪圖部分程序。

(3) 觸摸屏控制程序

這一部分程序的思想是:若有觸摸動作,取觸點坐標值,判斷其是否屬于 LCD上顯示的控制按鈕的坐標范圍,若是則做出相應的控制調整,若否則無動作。返回觸點坐標的子函數為 TchScr_GetScrXY(int *x,int *y)。在本設計中,定義了 3個控制按鍵,它們用于傳遞控制信息。

(4) 繪圖的API函數

在uC/OS-II系統環境下,繪圖必須通過使用繪圖設備上下文(DC)來實現。繪圖設備上下文(DC)中包括與繪圖相關的信息,如:繪圖坐標、畫筆顏色、畫筆寬度等等。在實際使用時,使用CreateDC()創建繪圖設備上下文,使用DestoryDC(pdc)刪除繪圖設備上下文,這兩條語句在程序中應該成對出現。通過使用 LineTo( )、TextOut()、Circle( )、MoveTo( )等函數,可以將采樣值實時的顯示到 LCD上。

在 LCD繪圖時以下兩點值得注意:

(a)在 LCD繪圖時要反復使用 LineTo( ) 和MoveTo( )兩個函數,但在使用該函數之前,一定要注意到 LCD的分辨率。只有知道了 LCD分辨率,才能知道 LCD的坐標值的范圍,從而得到正確的設定結果。本設計使用的 LCD分辨率是640*480。也就是說,初始坐標系的 x值范圍為(0≤x≤640),y值范圍(0≤y≤480)。

(b)由于LCD寬度有限,當橫坐標 x>LCDWidth時,波形就超出顯示范圍了。解決方法是在 LCD上顯示自左至右畫出的波形,當畫到 LCD的最右端時,清一次屏幕后,重新從 LCD的左端向右畫線,同時橫坐標的值也相應的改變。

(5) PC機上數據顯示程序

為了更好的記錄和分析數據,我們在 PC機上用 VC編寫了程序,這樣可以很好保存和處理數據,為性能分析和系統故障恢復提供了有利條件。

6.結論

uC/OS-II實時操作系統是開放源碼且得到實際驗證的軟件平臺,而ARM處理器具有強大的32位RISC性能。基于uC/OS-II及ARM,能大量減輕研發任務,提高研發速度,為在短時間內設計出控制性能優秀的數據采集系統創造了條件。本文數據采集系統已成功應用于工業場合溫度和水位的實時測控,達到了很好的效果。

本文作者創新點:摒棄了傳統單片機數據采集,采用移植性好的嵌入式 uC/OS-II系統,具有后續開發簡單,系統穩定性好,可靠性高等特點。本設計可以很容易得移植到其他數據采集系統當中去。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲成色www8888| 亚洲淫性视频| 国产精品影片在线观看| 亚洲欧美另类在线观看| 国产亚洲欧洲一区高清在线观看| 欧美小视频在线| 欧美日韩蜜桃| 久久久久久自在自线| 亚洲一区二区三区免费在线观看| 亚洲精品视频免费在线观看| 亚洲国产精品美女| 亚洲国产精品成人精品| 久久精品国产999大香线蕉| 欧美日韩国产成人在线91| 欧美日韩国产a| 久久久久久久精| 久久精品99国产精品日本 | 久久久久91| 久久九九久精品国产免费直播| 久久精品成人| 久久免费精品日本久久中文字幕| 久久久久久久综合日本| 久久久久一本一区二区青青蜜月| 久久综合福利| 欧美国产日韩免费| 欧美日韩激情小视频| 欧美四级在线| 国产精品日韩高清| 国产亚洲精品bt天堂精选| 国内精品视频在线播放| 1204国产成人精品视频| 亚洲麻豆视频| 亚洲欧美激情一区二区| 欧美一区二区三区在线观看| 最新中文字幕亚洲| 中国成人黄色视屏| 欧美一区二区三区四区在线观看地址| 久久久91精品| 欧美国产视频在线| 国产精品盗摄久久久| 国产亚洲一区二区精品| 在线观看日韩av| 99视频一区二区| 亚洲女人小视频在线观看| 久久精品国产99精品国产亚洲性色| 亚洲精品久久久久久下一站| 在线亚洲高清视频| 欧美亚洲一区在线| 免费久久99精品国产| 欧美日韩免费观看一区=区三区| 国产精品yjizz| 国产亚洲欧美激情| 亚洲人成在线播放| 亚洲在线一区| 亚洲精品一二三| 欧美一区二区三区免费在线看 | 久久久噜噜噜久久中文字免| 免费欧美视频| 男人插女人欧美| 亚洲欧美中文字幕| 日韩天堂av| 欧美在线视频播放| 欧美激情综合五月色丁香| 国产精品福利网站| 一色屋精品亚洲香蕉网站| 99视频精品免费观看| 久久精品国产96久久久香蕉| 一区二区电影免费在线观看| 久久精品中文字幕一区| 欧美日韩国产综合视频在线| 国产日韩欧美日韩| 亚洲另类在线视频| 久久精品青青大伊人av| 亚洲欧美精品在线观看| 欧美高清在线| 国产亚洲亚洲| 国产精品99久久99久久久二8| 亚洲国产成人午夜在线一区| 一区二区三区久久精品| 久久网站免费| 国产精品麻豆欧美日韩ww| 亚洲大胆人体在线| 欧美一区二区三区视频在线观看| avtt综合网| 久久狠狠一本精品综合网| 欧美性理论片在线观看片免费| 精品999久久久| 亚洲综合视频1区| 宅男噜噜噜66一区二区| 久久综合激情| 国产丝袜一区二区| 亚洲手机在线| 一区二区成人精品| 欧美成人一品| 在线观看视频一区| 欧美在线免费一级片| 亚洲欧美日韩国产| 欧美日韩一区高清| 亚洲日韩成人| 亚洲精品一区二区在线观看| 久久天堂成人| 国产一区91| 亚洲欧美精品中文字幕在线| 亚洲一区二区三区在线视频| 女同性一区二区三区人了人一| 国产一区999| 亚洲免费网站| 亚洲欧洲av一区二区| 欧美日韩一区二区三| 亚洲欧洲三级| 亚洲理论电影网| 欧美二区不卡| 亚洲福利精品| 亚洲精品视频一区二区三区| 久久综合久久88| 国产视频在线一区二区| 亚洲欧美在线免费观看| 欧美一级艳片视频免费观看| 国产精品毛片va一区二区三区 | 久久国产直播| 欧美在线免费看| 国产欧美日韩一区二区三区| 亚洲少妇在线| 午夜久久黄色| 国产精品视频成人| 亚洲综合日韩中文字幕v在线| 亚洲综合色激情五月| 欧美调教视频| 亚洲午夜未删减在线观看| 亚洲一区二区成人| 国产精品理论片在线观看| 亚洲一区精品电影| 久久激情视频免费观看| 国产一区二区三区久久久久久久久| 午夜视频在线观看一区| 欧美综合国产精品久久丁香| 国产性做久久久久久| 久久国产精品久久久| 免费在线观看日韩欧美| 亚洲国产成人不卡| 一区二区三区国产精品| 欧美无乱码久久久免费午夜一区 | 午夜亚洲一区| 国产亚洲精品aa| 亚洲国产精品电影在线观看| 欧美成人一品| 一二三区精品| 久久精品国产2020观看福利| 狠狠色狠狠色综合日日tαg| 亚洲欧洲在线一区| 欧美日韩视频| 午夜在线成人av| 免费毛片一区二区三区久久久| 亚洲日本激情| 欧美亚洲一区在线| 黄色成人av在线| 一个色综合导航| 国产免费成人| 亚洲欧洲在线播放| 欧美视频精品一区| 欧美一区二区视频在线| 欧美+亚洲+精品+三区| 亚洲精品之草原avav久久| 亚洲欧美文学| 亚洲福利在线看| 亚洲欧美日韩国产综合| 国产一区二区三区四区三区四| 亚洲精品欧美极品| 国产精品欧美激情| 亚洲国产日日夜夜| 欧美性大战久久久久久久| 亚洲电影免费观看高清| 欧美日韩日韩| 久久国产精品久久久久久电车| 欧美日韩99| 欧美在线观看天堂一区二区三区| 欧美国产日韩视频| 亚洲欧美视频一区| 欧美理论片在线观看| 欧美一二三视频| 欧美福利影院| 亚洲欧美中文在线视频| 欧美日本在线视频| 久久国产精品第一页| 欧美天堂亚洲电影院在线观看| 久久精精品视频| 国产精品videossex久久发布| 亚洲二区在线视频| 国产精品日韩久久久| 亚洲精选一区| 国内成+人亚洲| 亚洲欧美日韩国产精品| 亚洲激情视频在线播放| 久久九九免费| 亚洲小视频在线观看| 欧美激情一区二区三区不卡| 午夜日韩电影| 欧美视频一区| 亚洲人成在线观看网站高清| 国产视频在线观看一区二区|