《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)的智能信息記錄儀設(shè)計(jì)方案
AVR單片機(jī)的智能信息記錄儀設(shè)計(jì)方案
摘要: 隨著計(jì)算機(jī)技術(shù)的發(fā)展,對(duì)各種儀器的使用情況的監(jiān)控也越來越智能化。針對(duì)目前市場(chǎng)上時(shí)間記錄儀成本高,、可擴(kuò)展性差、存儲(chǔ)容量小,、編程復(fù)雜等缺點(diǎn),本文通過以AVR單片機(jī)為核心控制器,,以高亮度液晶為顯示器,,以USB移動(dòng)硬盤為存儲(chǔ)設(shè)備,設(shè)計(jì)了一種智能時(shí)間記錄儀,。
關(guān)鍵詞: avr 智能信息記錄儀
Abstract:
Key words :

    隨著計(jì)算機(jī)技術(shù)的發(fā)展,,對(duì)各種儀器的使用情況的監(jiān)控也越來越智能化。針對(duì)目前市場(chǎng)上時(shí)間記錄儀成本高,、可擴(kuò)展性差,、存儲(chǔ)容量小、編程復(fù)雜等缺點(diǎn),,本文通過以AVR單片機(jī)為核心控制器,,以高亮度液晶為顯示器,以USB移動(dòng)硬盤為存儲(chǔ)設(shè)備,,設(shè)計(jì)了一種智能時(shí)間記錄儀,。

1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)總體組成
    智能信息記錄儀由單片機(jī),、電源、液晶顯示,、鍵盤輸入和USB模塊幾部分組成,,其系統(tǒng)組成結(jié)構(gòu)框圖如圖1所示。系統(tǒng)中的電源包括外部
電源和鋰電池,。開機(jī)后,,系統(tǒng)主電源一邊給電路供電,一邊對(duì)鋰電池充電,。關(guān)機(jī)后,,則由鋰電池給USB供電完成數(shù)據(jù)的保存。液晶顯示部分的主要任務(wù)是完成開關(guān)機(jī)時(shí)間的查詢顯示,,在空閑時(shí)顯示當(dāng)前的系統(tǒng)時(shí)間。時(shí)鐘模塊使用的是DSl302芯片,,它是DALLAS公司推出的涓流充電時(shí)鐘芯片,,片內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM。它可通過簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信,,實(shí)時(shí)時(shí)鐘/日歷電路可提供秒,、分、時(shí),、日,、星期、月,、年的信息,,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整。USB模塊采用的U盤讀寫芯片PB375A是一個(gè)比較簡(jiǎn)單的U盤讀寫解決方案,。使用它無需了解繁瑣的USB HOST底層協(xié)議和FAT文件系統(tǒng)(支持FATl2和FATl6及FAT32文件系統(tǒng)),,而只需要將MCU與模塊通過SPI接口或者UART通信,通過執(zhí)行幾個(gè)簡(jiǎn)單命令,,便可完成文件的新建,、讀寫、刪除等功能,,使用十分簡(jiǎn)單方便,。另外,對(duì)于單片機(jī)來說,,基本不占用單片機(jī)系統(tǒng)的存儲(chǔ)空間,,只需要幾個(gè)字節(jié)的RAM和幾百字節(jié)的代碼就可完成。它的串口支持9600,、4800和2400bit/s三種波特率的選擇,,由于其內(nèi)置5 V轉(zhuǎn)3.3 V電路,,故可大大簡(jiǎn)化外圍電路的設(shè)計(jì)。


1.2 硬件電路設(shè)計(jì)
    該信息記錄儀器采用一款高性能低功耗的處理器ATmega64作為中央控制器,,它的工作電壓為3.3 V,,具有豐富的內(nèi)部資源:包括53個(gè)可編程的I/O口、7個(gè)外部中斷,、2個(gè)16位定時(shí)器,、2個(gè)8位定時(shí)器、4 KB的片內(nèi)SRAM和64 KB系統(tǒng)內(nèi)可編程Flash存儲(chǔ)器,,而且擦寫壽命長(zhǎng),,可滿足系統(tǒng)要求。ATmega64及其外圍接口電路如圖2所示,。

    該儀器的中斷接口電路包括開機(jī)時(shí)的上電中斷和關(guān)機(jī)時(shí)的掉電中斷,,它們都由光電耦合芯片6N137和非門74LVT04組成,圖3所示是其中斷電路,。電源VC經(jīng)過7805后接到光耦的輸入端,,輸出接單片機(jī)的INT0和非門的l腳,非門的2腳接INTl,。因此,,在開機(jī)時(shí),光耦輸入端Vin+為高電平,,輸出端Vo為低電平,,故產(chǎn)生上電中斷(INT0);而關(guān)機(jī)時(shí),,光耦的輸入是低電平,,而輸出為高電平。故在經(jīng)過非門2腳后,,輸出低電平以產(chǎn)生掉電中斷(INTl),。



    電源切換電路主要的功能是在系統(tǒng)關(guān)機(jī)時(shí),轉(zhuǎn)由鋰電池給USB供電并完成數(shù)據(jù)的保存,,其電源切換如圖4所示,。圖中,當(dāng)外部開機(jī)后,,V為高電平使三極管Q2導(dǎo)通,,同時(shí)把Q1的基極拉至低電平,使其導(dǎo)通,。外部電源V經(jīng)過二極管D1后(VC)給單片機(jī)電路和USB供電,。由于程序在初始時(shí)把POWER置高,所以,,此時(shí)Q2也是導(dǎo)通的,。當(dāng)系統(tǒng)關(guān)機(jī)后,,V變成低電平,三極管Q2截止,。但是,,由于此時(shí)Q3是導(dǎo)通的,所以Q1仍導(dǎo)通,,只是此時(shí)是由鋰電池供電來完成數(shù)據(jù)的保存,,這時(shí),單片機(jī)的定時(shí)器l開始工作,,并在延時(shí)10 s后,,使POWER的輸出為低電平,從而使Q3關(guān)斷,,并最終使Q1的基極變高,,整個(gè)記錄儀關(guān)閉。

 

2 系統(tǒng)軟件設(shè)計(jì)
    系統(tǒng)軟件的主要任務(wù)是USB的讀寫,、液晶的顯示,、時(shí)鐘和鍵盤的編程。PB375A和單片機(jī)之間使用串行通信,。其中,單片機(jī)首先將命令碼和
參數(shù)信息發(fā)送給PB375A,,由PB375A根據(jù)命令信息執(zhí)行完相應(yīng)操作,,再以中斷方式返回操作狀態(tài)碼給單片機(jī)。通信格式包括起始碼(0x3A),、操作碼,、數(shù)據(jù)長(zhǎng)度和數(shù)據(jù)包。其主要的操作碼如下:
    Ox71:檢測(cè)U盤是否連接,,連接時(shí)返回0,;
    0x64:打開已有的文件,如果文件不存在,,則返回Ox42:
    0x65:新建文件,;
    Ox7A:確定讀寫字節(jié)的地址;
    0x7B:以字節(jié)為單位返回讀取的數(shù)據(jù),。
    圖5所示是本系統(tǒng)的程序流程框圖,。


2.1 文件新建與數(shù)據(jù)寫入
    利用命令CMD_FileCreat可新建文件,文件名應(yīng)為8+3格式,,且必須為大寫字母或者數(shù)字,。
    寫入數(shù)據(jù)可通過命令CMD_ByteWrite來實(shí)現(xiàn)。
    通過CMD_FileClose命令可關(guān)閉文件,。關(guān)閉文件將自動(dòng)更新文件長(zhǎng)度,。另外應(yīng)特別注意只有關(guān)閉了文件,;才默認(rèn)生成文件,否則沒有文件生成,,也就無法進(jìn)行下面的操作(例如新建文件后沒有關(guān)閉文件就開始讀數(shù)據(jù),,則該操作無效)。
2.2 向已有文件追加數(shù)據(jù)
    向已有文件追加數(shù)據(jù)時(shí)的一般命令如下:
    CMD_FileOpen:打開文件,;
    CMD_ByteLocate:移動(dòng)文件指針到末尾(0xFFFFFFFF),;
    CMD_ByteWrite:寫入數(shù)據(jù);
    CMD_FileClose:關(guān)閉文件,。
2.3 寫數(shù)據(jù)操作
    寫數(shù)據(jù)時(shí),,首先讀取實(shí)時(shí)時(shí)鐘DSl302的值,以判斷當(dāng)前時(shí)間是不是每月的1號(hào),,如果是,,就新建一個(gè)vv-mm.TXT文件,用來保存一個(gè)月中每天的開機(jī)次數(shù),,然后再新建yy—mm—dd.TXT文件來保存每次具體的開關(guān)機(jī)時(shí)間,。假如現(xiàn)在是09年11月1日,則先新建09-11.TXT并寫入31個(gè)0,,然后把它第一個(gè)數(shù)讀取出來,,是0則新建09-11-01.TXT,寫入開機(jī)時(shí)間后,,再把開機(jī)次數(shù)的標(biāo)志位加1,,然后再寫入文件09-11.TXT。第二次開機(jī)時(shí),,時(shí)間就直接追加到該文件里,。
    在新建文件09-11-01.TXT時(shí),要把此刻的日期時(shí)間保存起來,。這樣,,當(dāng)關(guān)機(jī)時(shí),就會(huì)把關(guān)機(jī)時(shí)間追加到該文件里,。
2.4 日期時(shí)間的查詢與顯示
    顯示要查詢的日期時(shí)間時(shí),,首先打開輸入要求的日期文件,然后讀取數(shù)據(jù)并存入顯示緩存,。為了能在電腦上清晰閱讀,,寫入具體時(shí)間時(shí),應(yīng)使用空格,、回車,、換行等特殊字符,所以,,必須對(duì)單片機(jī)讀到的數(shù)據(jù)做特殊處理后再送去顯示,。

3 結(jié)束語
    本文所介紹的信息記錄系統(tǒng)方案設(shè)計(jì)合理,,使用方便,具有友好的人機(jī)界面和較大的數(shù)據(jù)存儲(chǔ)能力,,可以很好地實(shí)現(xiàn)時(shí)間信息的智能記錄,。使用本方案設(shè)計(jì)的智能信息記錄儀能夠滿足多種工業(yè)場(chǎng)合的使用要求,具有很好的推廣價(jià)值,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。