基于串行接口方式單片機(jī)通用數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
在傳統(tǒng)微機(jī)化的數(shù)據(jù)采集系統(tǒng)中,均是以總線(xiàn)方式來(lái)擴(kuò)展各功能部件,如A/D轉(zhuǎn)換器、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器、日歷/時(shí)鐘器件、顯示器件及微型打印機(jī)等,由三總線(xiàn)方式構(gòu)成的數(shù)據(jù)采集系統(tǒng),突出的問(wèn)題是由于總線(xiàn)引出,易受干擾,造成系統(tǒng)的可靠性降低,同時(shí)也帶來(lái)了布線(xiàn)密度高,占用電路板空間大,外圍元件較多,時(shí)序復(fù)雜等問(wèn)題。近年來(lái)隨著片內(nèi)具有FLASH存儲(chǔ)器的非總線(xiàn)型單片機(jī)及具有串行接口的外圍器件的推出,使得設(shè)計(jì)出基于串行接口方式的數(shù)據(jù)采集系統(tǒng)成為可能。
2 硬件結(jié)構(gòu)
基于串行接口方式的單片機(jī)通用數(shù)據(jù)采集系統(tǒng)硬件系統(tǒng)框圖如圖1所示。
圖1 串行接口方式單片機(jī)數(shù)據(jù)采集系統(tǒng)框圖
本系統(tǒng)根據(jù)實(shí)際采集數(shù)據(jù)的需要,分別設(shè)計(jì)了模擬量采集接口電路、開(kāi)關(guān)量采集接口電路、數(shù)字量采集接口電路及頻率量采集接口電路,基本涵蓋了各種數(shù)據(jù)信息的采集。為了將采集的信息保存下來(lái),擴(kuò)展了一片容量為64K字節(jié)的E2PROM AT24C512,為實(shí)現(xiàn)數(shù)據(jù)的定時(shí)采集和按時(shí)間日期保存數(shù)據(jù)而擴(kuò)展了一片實(shí)時(shí)時(shí)鐘日歷芯片SD2001E,為便于輸入各種數(shù)據(jù)而擴(kuò)展了鍵盤(pán)接口管理器件 SK5278,為便于實(shí)時(shí)顯示采集的數(shù)據(jù)及人機(jī)交互而擴(kuò)展了中文液晶圖文顯示器OCMJ4X8C,為便于將采集的數(shù)據(jù)打印輸出而擴(kuò)展了MP-A16-8型漢字微型打印機(jī),為便于將采集的數(shù)據(jù)傳送給上位計(jì)算機(jī)進(jìn)行數(shù)據(jù)的處理分析而使用MAX232擴(kuò)展了RS-232接口,下面對(duì)上述各串行接口器件予以介紹。
2.1 模擬數(shù)轉(zhuǎn)換器TLC2543
TLC2543是具有11個(gè)模擬量輸入通道,12位分辨率的A/D轉(zhuǎn)換器,因而本系統(tǒng)最多可實(shí)現(xiàn)11路模擬量的采集任務(wù),為了保證測(cè)量結(jié)果的準(zhǔn)確性,該器件具有3路內(nèi)置自測(cè)試方式,可分別測(cè)試REF+高基準(zhǔn)電壓值,REF-低基準(zhǔn)電壓值和REF+/2值,該器件的模擬量輸入范圍為REF+-REF-,一般模擬量的變化范圍為0-5V,但為了能滿(mǎn)足一些傳感器輸出的非標(biāo)準(zhǔn)電壓值的數(shù)據(jù)采集任務(wù),這里利用了TLC2543的基準(zhǔn)電壓設(shè)定功能,設(shè)計(jì)了模擬量輸入范圍設(shè)定調(diào)整電路,采用電阻分壓的方式設(shè)定采集基準(zhǔn)電壓值。其中R1和RP1用于設(shè)定滿(mǎn)度電壓值,調(diào)整RP1可使?jié)M度電壓值在1/2VDD-VDD之間變化,R2和RP2用于設(shè)定零值電壓,調(diào)整RP2可使零基準(zhǔn)電壓在0-1/2 VDD之間變化,RP1和RP2應(yīng)采用多圈精密電位器。TLC2543的基準(zhǔn)電壓設(shè)定功能,使得本系統(tǒng)可滿(mǎn)足各種非0-5V標(biāo)準(zhǔn)輸出的傳感器數(shù)據(jù)采集任務(wù),TLC2543與單片機(jī)的接口采用4線(xiàn)SPI串行接口,三個(gè)控制輸入端分別為“CS”(片選)輸入/輸出時(shí)鐘(CLK)及地址輸入端“DI”,片內(nèi)的 14通道多路器可以選擇11個(gè)輸入端的任何一個(gè)或3個(gè)內(nèi)部自測(cè)電壓中的一個(gè)且采樣保持是自動(dòng)完成的,轉(zhuǎn)換結(jié)束后“EOC”輸出變高,轉(zhuǎn)換結(jié)果由三態(tài)輸出端 “DO”輸出,AT89C52單片機(jī)與TLC2543的硬件接口電路如圖2所示。
2.2 I/O擴(kuò)展器GM8164
為了實(shí)現(xiàn)開(kāi)關(guān)量采集及開(kāi)關(guān)量輸出控制的功能,這里使用了一片具有大量I/O擴(kuò)展功能的串行芯片GM8164,該器件的主要特點(diǎn)如下:
圖2 單片機(jī)與TLC2543的硬件接口電路
⑴擴(kuò)展I/O口數(shù)量眾多,可提供32位數(shù)據(jù)輸入口和40位數(shù)據(jù)輸出口;
⑵同時(shí)提供8個(gè)開(kāi)漏輸出口,方便電平轉(zhuǎn)換和驅(qū)動(dòng);
⑶可達(dá)1MHz的全速率同步串行接口,非常方便與通用MCU接口;
⑷可多個(gè)芯片級(jí)聯(lián),擴(kuò)展I/O口的數(shù)量;
使用GM8164可使本系統(tǒng)實(shí)現(xiàn)最多32個(gè)開(kāi)關(guān)量的數(shù)據(jù)采集任務(wù),同時(shí)可提供40個(gè)開(kāi)關(guān)量控制輸出功能。
2.3 高精度實(shí)時(shí)時(shí)鐘/日歷SD2001E
實(shí)時(shí)時(shí)鐘器件使用了具有I2C總線(xiàn)接口的實(shí)時(shí)時(shí)鐘器件SD2001E,該器件將實(shí)時(shí)時(shí)鐘所需的電池、晶振、電源管理等電路全部集成在了芯片內(nèi)部。在系統(tǒng)掉電的情況下也可保證時(shí)鐘的運(yùn)行。該芯片無(wú)需任何的外圍元件,就可構(gòu)成一個(gè)高精度的實(shí)時(shí)時(shí)鐘日歷,且可為系統(tǒng)提供32k byte擦寫(xiě)次數(shù)達(dá)100億次的非易失性SRAM,該器件的主要性能指標(biāo)如下:
⑴年、月、日、星期、時(shí)、分、秒的BCD碼輸入/輸出;
⑵I2C總線(xiàn)接口(包括實(shí)時(shí)時(shí)鐘部分和SRAM部分);
⑶自動(dòng)日歷到2099年(包括閏年自動(dòng)換算功能);
⑷內(nèi)置高精度晶振,精度≤±5ppm,即一個(gè)月內(nèi),走時(shí)誤差不超過(guò)13秒(25℃);
鐘走時(shí)時(shí)間超過(guò)10年以上;
2.4 串行E2PROM AT24C512
由于SD2001E為系統(tǒng)提供了容量達(dá)32k字節(jié)的非易失性數(shù)據(jù)存儲(chǔ)器,已能夠滿(mǎn)足一般數(shù)據(jù)采集系統(tǒng)的需要,如采集系統(tǒng)的數(shù)據(jù)存儲(chǔ)量較大時(shí),可在擴(kuò)展一片容量為64k字節(jié)的E2PROM AT24C512。由于該器件的擦寫(xiě)壽命有限,故在使用時(shí)可將數(shù)據(jù)先寫(xiě)入SD2001E片內(nèi)NVRAM,當(dāng)NVRAM寫(xiě)滿(mǎn)后再將數(shù)據(jù)存入到 AT24C512中,這樣可使AT24C512的讀寫(xiě)頻率大為降低,從而大大延長(zhǎng)了該存儲(chǔ)器的使用壽命。
2.5 中文圖文液晶顯示模塊OCMJ4X8C
為便于將采集的數(shù)據(jù)實(shí)時(shí)顯示出來(lái),并實(shí)現(xiàn)友好的全中文圖形人機(jī)界面,這里使用了串行接口具有中文字庫(kù)的圖形點(diǎn)陣液晶模塊OCMJ4XC8, OCM4X8C是具有串/并接口且內(nèi)部含有中文字庫(kù)的液晶顯示模塊。該模塊的控制/驅(qū)動(dòng)器采用臺(tái)灣矽創(chuàng)電子公司的ST7920,因而使得該模塊具有較強(qiáng)的控制顯示功能。該模塊的液晶顯示點(diǎn)陣為128*64,可顯示4行,每行8個(gè)漢字,為了便于簡(jiǎn)單和方便地顯示漢字,該模塊的內(nèi)部具有2Mbit的中文字型 CGROM,該字型ROM中含水量有8192個(gè)16*16點(diǎn)陣中文字型庫(kù),同時(shí)為了便于英文字符和其它常用字符的顯示該模塊的內(nèi)部還具有16Kbit的 16*8點(diǎn)陣的ASCⅡ字符庫(kù),為便于構(gòu)造用戶(hù)圖形,該模塊還提供了一個(gè)64*256點(diǎn)的GDRM繪圖區(qū)域,且為便于構(gòu)造用戶(hù)所需字型,模塊內(nèi)部提供了4 組16*16點(diǎn)陣的造字空間。利用上述功能,OCMJ4X8C實(shí)現(xiàn)漢字、ASCⅡ碼、點(diǎn)陣圖形、自選字型的同屏顯示。為便于和多種微處理器接口,模塊提供了8位并行、4 位并行、2線(xiàn)并行、3線(xiàn)并行接口方式。
2.6 微型漢字打印機(jī)
為便于將采集數(shù)據(jù)打印出來(lái),這里使用了具有漢字庫(kù)的串行中文打印機(jī)MP-A(D)16-8該打印機(jī)的主特點(diǎn)如下:方便的漢字打印功能,除存儲(chǔ)字符集一、二外,還自帶16×16點(diǎn)陣與12×12點(diǎn)陣國(guó)標(biāo)一二級(jí)漢字庫(kù),故不但能打印全部ASCⅡ字符和德文、法文、俄文、日語(yǔ)、數(shù)字符號(hào)、專(zhuān)用符號(hào)、自選字符、點(diǎn)陣曲線(xiàn)以及條碼等,更能同行混合打印16×16、12×12、8×16、16×8、8×8、6×12,點(diǎn)陣漢字或5×7、6×8、8×12、8×16點(diǎn)陣 ASCⅡ字符。由于自帶2k字節(jié)的數(shù)據(jù)緩存器及漢字字庫(kù),使得打印漢字及圖符速度與英文字符一樣快捷;豐富的文字修飾功能;方便的接口方式。
2.7 數(shù)字量與頻率量的采集
數(shù)字量與頻率量的采集直接使用單片機(jī)自身硬件資源,對(duì)于數(shù)字傳感器輸出的數(shù)字信號(hào)可直接使用單片機(jī)的口線(xiàn)完成數(shù)字信息的采集任務(wù),這里將單片機(jī)的P1口作數(shù)字量采集接口。頻率量的采集如轉(zhuǎn)速、流量、風(fēng)向等可使用單片機(jī)的定時(shí)/計(jì)數(shù)器,這里將定時(shí)器0和定時(shí)器1作為頻率量采集用,當(dāng)不使用的頻率量采集功能時(shí)可做它用。
3 監(jiān)控軟件設(shè)計(jì)
本系統(tǒng)監(jiān)控軟件采用模塊化結(jié)構(gòu)設(shè)計(jì)并采用ASM匯編語(yǔ)言編制。監(jiān)控程序功能是對(duì)各串行接口器件進(jìn)行初始化,然后分別調(diào)用模擬量采集模塊,數(shù)字量采集模塊,開(kāi)關(guān)量采集模塊和頻率量采集模塊,如外部有模擬量、開(kāi)關(guān)量、數(shù)字量、頻率量信號(hào)輸入時(shí),則調(diào)用相應(yīng)的算法程序?qū)?duì)應(yīng)變量處理變換后送入SD2001E的 NVRAM中進(jìn)行數(shù)據(jù)保存。同時(shí)將對(duì)應(yīng)的數(shù)值送液晶顯示器顯示或根據(jù)需要打印輸出,如外部無(wú)任何信號(hào)輸入時(shí)則在液晶屏上顯示“歡迎使用”及系統(tǒng)時(shí)間、日期。下面給出監(jiān)控程序流程。如圖3所示。
結(jié)束語(yǔ)
基于串行接口方式單片機(jī)數(shù)據(jù)采集系統(tǒng)的研制,摒棄了傳統(tǒng)單片機(jī)的總線(xiàn)擴(kuò)展方式而采用串行擴(kuò)展技術(shù)來(lái)擴(kuò)展外圍功能電路。雖然AT89C52單片機(jī)并不直接支持各種串行總線(xiàn)接口,但是這里采用了單片機(jī)的通用I/O口線(xiàn),來(lái)模擬I2C總線(xiàn)、SPI總線(xiàn)及二線(xiàn)串行總線(xiàn),并通過(guò)軟件編程來(lái)實(shí)現(xiàn)與各外圍器件的通信功能,串行擴(kuò)展技術(shù)簡(jiǎn)化了系統(tǒng)接口設(shè)計(jì)的復(fù)雜程度,并提高了系統(tǒng)工作的可靠性。但值得注意的是,串行擴(kuò)展技術(shù)簡(jiǎn)單的硬件接口是以復(fù)雜的接口時(shí)序?yàn)榇鷥r(jià)的,因而在軟件編程時(shí)一定要嚴(yán)格遵守器件的操作時(shí)序。該系統(tǒng)可廣泛應(yīng)用與以單片機(jī)為核心構(gòu)成的智能儀器儀表系統(tǒng)、數(shù)據(jù)采集系統(tǒng)和計(jì)算機(jī)測(cè)控系統(tǒng)。同時(shí)也為智能儀器儀表系統(tǒng)搭建了一個(gè)較好的硬件平臺(tái)。
參考文獻(xiàn)
1. 孟臣.李敏.高性能鐵電存儲(chǔ)器FM24C256及其在單片機(jī)中的應(yīng)用.電子技術(shù),2003.1:38-41
2. 李敏.孟臣.串行中文圖形液晶顯示模塊在單片機(jī)系統(tǒng)中的應(yīng)用.電子產(chǎn)品世界.2002.11.(B)
3. 李敏.孟臣.大容量串行E2PROM AT24C512及其應(yīng)用.電子元器件應(yīng)用.2003.5(1):29~31
4. 李敏.孟臣.帶大量I/O口擴(kuò)展的串行芯片GM8164及其應(yīng)用.國(guó)外電子元器件應(yīng)用.2003. (1):35~38