《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于AVR的鉛酸蓄電池管理系統(tǒng)設(shè)計
基于AVR的鉛酸蓄電池管理系統(tǒng)設(shè)計
胡永華 楊金明
摘要: 本文摒棄了傳統(tǒng)單片機數(shù)據(jù)采集,采用移植性好的嵌入式 uC/OS-II系統(tǒng),具有后續(xù)開發(fā)簡單,系統(tǒng)穩(wěn)定性好,可靠性高等特點。本設(shè)計可以很容易得移植到其他數(shù)據(jù)采集系統(tǒng)當中去。
關(guān)鍵詞: avr AVR微控制器 電池管理
Abstract:
Key words :

1. 引言

在工業(yè)過程或?qū)嶒炇依铮?jīng)常需要對多種信號進行同時采集及監(jiān)測,以便實現(xiàn)性能分析、過程控制、系統(tǒng)恢復(fù)等目的。目前,常用的數(shù)據(jù)采集裝置,多采用單片機實現(xiàn),軟件多采用單任務(wù)順序機制,這使得系統(tǒng)不僅處理能力有限,而且存在穩(wěn)定性差的問題。以嵌入式計算機為核心的嵌入式系統(tǒng)由于具有體積小、性能好、功耗低、可靠性高以及面向行業(yè)應(yīng)用的突出特征,成為繼 I T網(wǎng)絡(luò)技術(shù)之后,又一個新的技術(shù)發(fā)展方向 [1]。

本文以嵌入式 S3C2410為核心芯片,設(shè)計和實現(xiàn)了一種高速、高精度且具有一定處理能力的數(shù)據(jù)采集處理系統(tǒng),并將其應(yīng)用于工業(yè)過程水位和溫度的實時監(jiān)測。

2. 系統(tǒng)總體設(shè)計

本設(shè)計采用以 ARM9為核心的 S3C2410作為數(shù)據(jù)采集與處理的核心,主要包括以下四個模塊:信號采集、數(shù)據(jù)存儲、數(shù)據(jù)顯示、數(shù)據(jù)傳輸。模擬信號通過放大電路再輸入到 S3C2410處理器片內(nèi) A/D轉(zhuǎn)換器,經(jīng)過處理結(jié)果以動態(tài)波形的形式顯示在 LCD上,并用觸摸屏控制顯示方式。同時通過串口發(fā)送給 PC,在 PC上用 VC++編寫的程序?qū)?shù)據(jù)進行顯示、存儲等后續(xù)處理。系統(tǒng)結(jié)構(gòu)如圖 1所示。

3. 硬件電路設(shè)計

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

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

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

4. 系統(tǒng)軟件設(shè)計

軟件設(shè)計主要是 uC/OS-II移植和任務(wù)的編寫。uC/OS-II是一個免費的、可裁減、源碼開放、結(jié)構(gòu)小巧、搶占式的實時多任務(wù)嵌入式內(nèi)核,主要面向中小型嵌入式系統(tǒng),具有執(zhí)行效率高、占用空間小、可移植性強、實時性能優(yōu)良和可擴展性強等特點[2]。

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

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

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

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

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

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

(2) 修改OS_CPU_C.C中與操作系統(tǒng)相關(guān)的OSTaskStkInit()函數(shù)

OSTaskStkInit()用于任務(wù)堆棧初始化,OSTaskCreate()和 OSTaskcreateExt()通過調(diào)用OSTaskStkInit()來初始化任務(wù)的堆棧結(jié)構(gòu)。圖 3顯示了OSTaskStkInit()在建立任務(wù)時,任務(wù)堆棧初始化的形式。

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

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

5. 應(yīng)用任務(wù)設(shè)計

系統(tǒng)流程圖如圖4所示。

(1) 初始化uC/OS-II系統(tǒng)環(huán)境

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

(2) 編程實現(xiàn) A/D轉(zhuǎn)換

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

(3) 觸摸屏控制程序

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

(4) 繪圖的API函數(shù)

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

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

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

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

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

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

6.結(jié)論

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

本文作者創(chuàng)新點:摒棄了傳統(tǒng)單片機數(shù)據(jù)采集,采用移植性好的嵌入式 uC/OS-II系統(tǒng),具有后續(xù)開發(fā)簡單,系統(tǒng)穩(wěn)定性好,可靠性高等特點。本設(shè)計可以很容易得移植到其他數(shù)據(jù)采集系統(tǒng)當中去。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲尤物影院| 久久国产精品久久久久久电车| 国产精品久久久久久久久婷婷| 欧美插天视频在线播放| 久久精品综合| 新狼窝色av性久久久久久| 亚洲影院免费| 亚洲欧美国产精品桃花| 亚洲在线电影| 午夜精品久久久| 性18欧美另类| 欧美亚洲一级| 欧美中文字幕| 久久久另类综合| 久久久久久高潮国产精品视| 久久久久九九九九| 久久五月激情| 免费美女久久99| 欧美成人午夜免费视在线看片| 女人天堂亚洲aⅴ在线观看| 美女露胸一区二区三区| 欧美成人精品一区| 欧美激情在线观看| 欧美日韩国产影院| 国产精品v欧美精品v日韩 | 国产精品免费网站在线观看| 国产精品日韩久久久| 国产美女精品在线| 国产在线观看一区| 在线日韩av永久免费观看| 亚洲国产高清高潮精品美女| 亚洲精品一区二区三| 99在线精品免费视频九九视| 亚洲一区在线播放| 久久成人免费视频| 亚洲精品国产拍免费91在线| 99精品免费视频| 亚洲欧美欧美一区二区三区| 久久精品亚洲精品| 欧美α欧美αv大片| 欧美日韩国产在线| 国产精品在线看| 伊人精品在线| 99re66热这里只有精品3直播| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美一区二区三区在线视频| 亚洲国产精品久久久| 亚洲黄色免费网站| 亚洲天堂av高清| 欧美在线观看视频一区二区| 欧美.日韩.国产.一区.二区| 欧美午夜免费影院| 国产一区二区三区精品久久久 | 欧美一区二区三区免费观看视频| 亚洲国产精品一区二区www在线| 99国产精品国产精品毛片| 亚洲男女自偷自拍| 麻豆成人av| 国产精品v片在线观看不卡| 国语自产精品视频在线看| 亚洲激情社区| 香蕉久久一区二区不卡无毒影院| 亚洲美女尤物影院| 欧美中文字幕视频| 欧美精品一区二区三区蜜臀 | 99精品视频免费观看| 欧美在线精品免播放器视频| 日韩亚洲欧美一区二区三区| 亚久久调教视频| 欧美黑人国产人伦爽爽爽| 国产精品一区二区你懂得| 亚洲国产高清aⅴ视频| 亚洲免费在线电影| 亚洲理伦电影| 久久久综合精品| 国产精品久久久爽爽爽麻豆色哟哟| 在线成人黄色| 欧美一区二区精品| 一区二区三区日韩精品| 麻豆freexxxx性91精品| 国产欧美精品日韩精品| 日韩图片一区| 亚洲国产精品女人久久久| 午夜亚洲一区| 欧美日本在线播放| 一区二区三区在线视频观看| 亚洲一区二区三区乱码aⅴ| 99国产一区| 久久综合一区二区| 国产亚洲福利社区一区| 亚洲婷婷在线| 一区二区三区精密机械公司 | 国产日韩亚洲欧美| 亚洲天堂偷拍| 亚洲视频免费在线观看| 欧美国产亚洲另类动漫| 精品动漫一区二区| 性久久久久久久久| 亚洲免费视频在线观看| 欧美日韩精品二区| 亚洲激情视频| 亚洲国产精品一区制服丝袜| 久久久国产午夜精品| 国产美女精品免费电影| 亚洲一级影院| 亚洲欧美国产精品专区久久| 欧美日韩一区二区在线观看| 91久久精品视频| 亚洲激情电影中文字幕| 久久亚洲图片| 国内成人精品视频| 欧美综合国产精品久久丁香| 久久不见久久见免费视频1| 国产精品女同互慰在线看| 一区二区三区视频免费在线观看| 一本大道久久精品懂色aⅴ| 欧美激情视频给我| 亚洲精品国久久99热| 亚洲乱码国产乱码精品精98午夜| 欧美aⅴ一区二区三区视频| 尤物99国产成人精品视频| 亚洲国产影院| 欧美成人免费全部| 亚洲电影免费观看高清完整版在线观看 | 久久激情综合| 国产在线视频欧美| 亚洲电影在线播放| 榴莲视频成人在线观看| 激情久久久久久| 亚洲国产裸拍裸体视频在线观看乱了| 老司机亚洲精品| 亚洲国产精品成人精品| 亚洲精品中文字幕在线| 欧美精品久久久久久久久老牛影院| 91久久精品网| 一区二区三区鲁丝不卡| 欧美午夜性色大片在线观看| 亚洲一区999| 久久九九热免费视频| 精品91在线| 99热在这里有精品免费| 欧美日韩在线直播| 亚洲影院一区| 久久视频在线看| 亚洲高清一区二| 亚洲午夜久久久久久久久电影网| 国产精品高清在线| 午夜精品成人在线视频| 麻豆国产va免费精品高清在线| 亚洲国内欧美| 亚洲已满18点击进入久久| 国产日韩欧美另类| 亚洲国产精彩中文乱码av在线播放| 免费在线视频一区| 艳女tv在线观看国产一区| 小辣椒精品导航| 在线免费观看日韩欧美| 一区二区欧美视频| 国产欧美日韩另类一区| 亚洲国产视频a| 欧美色123| 久久精品国产96久久久香蕉 | 欧美视频亚洲视频| 久久精品观看| 欧美日韩一级片在线观看| 亚洲男人的天堂在线aⅴ视频| 开心色5月久久精品| 夜夜嗨av一区二区三区免费区| 欧美一区免费视频| 最新中文字幕亚洲| 欧美一区二区女人| 亚洲国产精品久久久久秋霞影院| 亚洲欧美日韩在线高清直播| 黄色一区二区在线| 亚洲一区不卡| 激情久久一区| 午夜精品国产精品大乳美女| 亚洲国产成人不卡| 欧美呦呦网站| 日韩视频精品| 老司机亚洲精品| 亚洲一品av免费观看| 欧美成人精品h版在线观看| 亚洲女ⅴideoshd黑人| 欧美激情一区二区三区在线| 性做久久久久久久免费看| 欧美巨乳在线观看| 欧美一区二区三区在线观看 | 亚洲欧美日韩国产中文在线| 欧美成人黑人xx视频免费观看| 亚洲欧美日本国产专区一区| 欧美激情一区二区三区| 欧美在线日韩在线| 欧美视频一二三区| 亚洲欧洲中文日韩久久av乱码| 国产欧美一区视频| 亚洲午夜激情在线| 亚洲第一区在线| 久久久久欧美精品| 亚洲免费一级电影|