汪躍萍 朱云國
摘要:該文是基于Cortex-A8處理器進行鬧鐘設(shè)備控制系統(tǒng)設(shè)計,以此緊跟社會發(fā)展的步伐,滿足人們對電子產(chǎn)品的需求。該設(shè)計首先介紹硬件平臺的搭建,然后進行軟件平臺的服務(wù)器搭建和開發(fā)板參數(shù)設(shè)置、硬件電路的設(shè)計、軟件模塊的設(shè)計,最后在Linux系統(tǒng)下進行項目測試。利用開發(fā)板中的LM75數(shù)字溫度傳感器采集溫度,通過PWM變頻技術(shù)實現(xiàn)定時鬧鐘功能,并可以實現(xiàn)時鐘顯示功能,用戶還可以利用App來控制鬧鐘的添加、刪除、更新等功能。相信在嵌入式技術(shù)不斷更新的背景下,這項技術(shù)必將給人們的生活帶來便利,以后的鬧鐘等電子產(chǎn)品必將向著智能化和數(shù)字化方向發(fā)展。
關(guān)鍵詞:Cortex_A8;鬧鐘;智能化
中圖分類號:TP273 文獻標(biāo)識碼:A
文章編號:1009-3044(2020)15-01 12-03
1背景
嵌入式技術(shù)經(jīng)過30多年的發(fā)展,各類電子產(chǎn)品層出不窮,滿足了人們的生活需求。嵌入式技術(shù)的產(chǎn)品已經(jīng)遍及到我們的生活、學(xué)習(xí)、工作等方方面面。在軍事、科學(xué)、商業(yè)、工程、娛樂文化等領(lǐng)域均涉及嵌入式技術(shù)。伴隨著集成電路技術(shù)、信息技術(shù)、網(wǎng)絡(luò)技術(shù)的發(fā)展,可以明顯地發(fā)現(xiàn)嵌人式應(yīng)用市場將十分廣闊。嵌入式技術(shù)代表了今后的發(fā)展趨勢。本次設(shè)計就是基于Cortex-A8鬧鐘設(shè)備控制系統(tǒng)。選擇Cortex-A8作為開發(fā)條件是因為ARM處理器系列十分豐富,從最開始的ARM7處理器發(fā)展到如今的Cortex-A8處理器甚至是Cortex-A9、Cot-tex-A15等一系列在社會生產(chǎn)上應(yīng)用十分廣泛的產(chǎn)品來看,選擇ARM處理器是十分正確的。雖然ARM系列的開發(fā)板功能都十分強大,但從性價比上來看Cortex-A8處理器最高,它能夠使用戶可以享受到更高水準(zhǔn)的用戶體驗。在處理器當(dāng)中它是能效最高、尺寸最小的處理器。
由于嵌入式技術(shù)的發(fā)展日新月異,因而人們對于電子時鐘的精度要求以及一些附加功能要求也越來越高。本次設(shè)計的電子鬧鐘不僅僅能精準(zhǔn)地實現(xiàn)年、月、日、時、分、秒,還可以對用戶所處室內(nèi)溫度進行檢測,而且可以利用App操控鬧鐘。
2總體結(jié)構(gòu)
本次設(shè)計的總體流程圖主要分為兩部分:主控程序和守護進程。在主控程序中有溫度讀寫模塊、時鐘顯示模塊、鬧鐘顯示模塊、用戶處理指令模塊。在用戶處理指令模塊中有三個功能添加鬧鐘功能、刪除鬧鐘功能、更新鬧鐘功能。對于鬧鐘顯示模塊利用守護進程去監(jiān)控。一旦用戶設(shè)定的鬧鐘時間到時,守護進程就會響應(yīng)實現(xiàn)鬧鐘功能,項目總的流程圖如圖1所示。
3硬件設(shè)計
3.1溫度模塊
溫度檢測功能的實現(xiàn)用到了數(shù)字溫度傳感器LM75,LM75芯片依靠兩條12C總線協(xié)議來監(jiān)控環(huán)境溫度,LM75對溫度監(jiān)控的精度達到0.5℃。并且LM75芯片對檢測到的溫度有自主校對功能,當(dāng)然LM75對于溫度的檢測是有范圍的,范圍值在-55到125℃。當(dāng)超出這一范圍會提醒用戶發(fā)出報警。LM75內(nèi)部有五個寄存器,當(dāng)通電后寄存器設(shè)為00時,芯片被設(shè)置為溫度寄存器,這時候會采集用戶環(huán)境溫度。通過FC總線接口對芯片發(fā)出一條指令,將采集到的環(huán)境溫度返回給用戶,這時候LM75就會返回寄存器檢測到的溫度,如圖2所示。
圖2中利用的是LM75芯片數(shù)字溫度傳感器。LM75芯片中的1號引腳SDA具有串行數(shù)據(jù)輸出輸入的功能,當(dāng)通上電后它可以用來讀取環(huán)境溫度以及將讀取到的溫度給發(fā)送出去。2號引腳SCL是一個FC接口,用來采集時間的。3號引腳OS在環(huán)境溫度不在LM75芯片檢測范圍內(nèi)時發(fā)揮作用,具有數(shù)據(jù)超值便發(fā)生信號中斷的功能。4號引腳GND和8號引腳VCC是電源引腳。5號引腳A0和6號引腳A1以及7號引腳A2可以進行地址設(shè)定,比如對溫度的采集可以通過這三個引腳設(shè)定。
3.2 PWM模塊
利用PWM模塊的功能來實現(xiàn)定時鬧鐘,利用PWM產(chǎn)生方波序列,之后經(jīng)過三極管的放大,將放大后的電信號傳遞給蜂鳴器,蜂鳴器再轉(zhuǎn)化成自身所帶的聲音信號以此發(fā)出聲響,從而實現(xiàn)鬧鐘設(shè)備的定點報時功能。其電路圖如圖3。
圖3主要是由PWM信號波、三極管、蜂鳴器組成。PWM可以說是一種變頻技術(shù),它通過改變周期大小來控制輸入的頻率大小以及通過改變脈沖的寬度來對輸出電壓進行控制。三極管的作用在這里是放大,三極管能夠把基極微小的電流,在集電極得到一個很大的電流。三極管中有一個參數(shù)叫作電流放大系數(shù)B,在集電極得到的電流就是基極電流的B倍。每次基極電流微小的變化都會在集電極得到一個大電流。蜂鳴器的作用是把從三極管得到的電信號轉(zhuǎn)換為自身所帶的聲信號,同時它也具有把信號放大的作用。由上述分析看出來PWM不斷產(chǎn)生變化的信號,在三極管的基極得到不斷變化的電流信號,導(dǎo)致在集電極產(chǎn)生很大且連續(xù)變化的電流,放大后的電流信號再經(jīng)過蜂鳴器的放大且轉(zhuǎn)換成聲信號,這一階段便實現(xiàn)鬧鐘。
4軟件設(shè)計
4.1時鐘與溫度模塊
對于溫度檢測與時鐘顯示功能的流程圖如圖4所示。當(dāng)時鐘功能開始工作時,為了使得本次設(shè)計的各個功能夠相互之間不會阻塞,所以為溫度讀寫功能設(shè)置了一個線程,為時鐘顯示功能設(shè)置一個線程。這樣系統(tǒng)在檢測用戶所在環(huán)境的溫度的同時也可以進行時鐘顯示的功能。
4.2鬧鐘(PVVM)模塊
定時鬧鐘功能的模塊流程圖如圖5所示,從流程圖可以看出鬧鐘功能的實現(xiàn)需要守護進程來監(jiān)控。這里利用了守護進程的特點,在系統(tǒng)后臺運行一直監(jiān)視著鬧鐘功能,當(dāng)用戶設(shè)定的鬧鐘時刻t2到時,這個時間t2存放在crontab里,守護進程會先讀取當(dāng)前系統(tǒng)時間t1,t1和t2較。t1=t2時表明鬧鐘時刻到了,然后進入鬧鐘模塊線程,讀取crontab模塊里的信息開始鬧鐘功能。最后并把鬧鐘時刻給顯示到液晶顯示屏上。
調(diào)用void alarm(void)函數(shù)來配合硬件部分的PWM模塊來實現(xiàn)鬧鐘報警功能。對于用戶設(shè)定的鬧鐘時間還要顯示在屏幕上給用戶看,這里調(diào)用Lcd__ClearAlarm(Black)函數(shù)來顯示鬧鐘背景圖片,調(diào)用函數(shù)顯示鬧鐘響起的時刻用函數(shù)Lcd_Put-string。調(diào)用while(fgets(ret,sizeof(ret)來循環(huán)控制用戶設(shè)定的多個鬧鐘。對于While()里的參數(shù)意思是當(dāng)用戶設(shè)定的時間到的時候就循環(huán)執(zhí)行里面的鬧鐘程序。
4.3 LCD模塊
圖6是LCD顯示設(shè)計實物圖的背景圖,對于LCD顯示部分是通過圖片形式顯示的,每次在液晶屏上出現(xiàn)的年、月、日、時、分、秒以及溫度實際顯示的是對應(yīng)的圖片。
4.4用戶指令處理模塊
對于用戶指令處理功能是對鬧鐘顯示模塊的控制。為了確保各個模塊之間的工作能夠獨立工作,要在主函數(shù)里設(shè)置一個線程即用戶指令線程來專門為它服務(wù)。用戶指令模塊可以控制的功能有(A/a添加鬧鐘、D/d刪除鬧鐘、U/u更新時鐘)。
當(dāng)用戶輸入對應(yīng)的指令時,如輸入A來添加鬧鐘,也就是設(shè)定了鬧鐘被執(zhí)行的時刻,程序會對用戶輸入的指令進行解析判斷從而執(zhí)行相應(yīng)的功能。在這里執(zhí)行相應(yīng)的功能之前會修改crontab里的文件,當(dāng)crontab里的文件被修改后,守護進程被喚醒后獲取到crontab文件里的內(nèi)容,解析出鬧鐘執(zhí)行的時刻然后進入到鬧鐘顯示模塊。用戶指令處理流程圖如圖7。
5結(jié)束語
提出了基于Cortex-A8的鬧鐘設(shè)備控制系統(tǒng)設(shè)計,硬件設(shè)計方面首先進行開發(fā)板與筆記本的搭建,軟件設(shè)計方面完成了時鐘顯示模塊、定時鬧鐘模塊、溫度采集模塊、用戶指令模塊的設(shè)計。完成了基本的運行和調(diào)試,達到了預(yù)期目標(biāo)。操作實物圖如圖8。