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