摘 要: 介紹水表" title="水表">水表智能抄表系統(tǒng)的核心部分——抄表手機(jī),以及如何用32位機(jī)S3C44B0X" title="S3C44B0X">S3C44B0X來(lái)實(shí)現(xiàn)抄表手機(jī)的功能。
關(guān)鍵詞: 智能抄表系統(tǒng) 抄表手機(jī) S3C44B0X CPU ARM" title="ARM">ARM7TDMI核 USB" title="USB">USB總線
1 水表智能抄表系統(tǒng)簡(jiǎn)介
目前,自來(lái)水表都是機(jī)械式的,而且多數(shù)自來(lái)水表都裝在戶內(nèi),這給水表抄表員帶來(lái)了很大的麻煩。當(dāng)抄表員抄表時(shí),必須挨家挨戶用肉眼讀取水表的讀數(shù),然后登記在隨身攜帶的小本子上。回去以后,還要由專門的電腦輸入員把水表讀數(shù)輸入到計(jì)算機(jī)中的數(shù)據(jù)庫(kù)里,計(jì)算出本月的用水量,再打印出本月各用戶應(yīng)交的水費(fèi)。這一過(guò)程不但工作量大,而且很容易出錯(cuò)?,F(xiàn)在得理上海電子有限公司開發(fā)出了智能水表,對(duì)機(jī)械水表中的指針轉(zhuǎn)過(guò)的圈數(shù)進(jìn)行計(jì)數(shù),通過(guò)串口(RS422)發(fā)送水表讀數(shù)。這給自來(lái)水表的智能抄表系統(tǒng)奠定了基礎(chǔ)。
自來(lái)水表的智能抄表系統(tǒng)框圖如圖1所示。用戶的機(jī)械式水表改裝成智能水表后,連接到裝在樓底下的匯集器上。匯集器每隔一定的時(shí)間(具體時(shí)間可以設(shè)置)對(duì)智能水表采集一次數(shù)據(jù),保存在存儲(chǔ)器里。如果該樓梯的用戶數(shù)大于16個(gè)或連線超過(guò)500m時(shí),需在智能水表與匯集器之間加中繼器,以增加驅(qū)動(dòng)能力。智能抄表系統(tǒng)中的核心部分是便攜式抄表手機(jī)。它的主要任務(wù)是用自己的指令解釋并運(yùn)行上位機(jī)所編的Foxpro程序;采集匯集器或者智能水表的數(shù)據(jù),更新數(shù)據(jù)庫(kù)中的內(nèi)容;并與上個(gè)月數(shù)據(jù)相比較,計(jì)算出用水量并當(dāng)場(chǎng)打印賬單,由抄表員將各用戶的賬單放到樓梯口的用戶信箱中;通過(guò)手機(jī)上的USB接口可以將數(shù)據(jù)傳輸給計(jì)算機(jī),由計(jì)算機(jī)進(jìn)行處理、存檔。從而實(shí)現(xiàn)了水表到計(jì)算機(jī)的數(shù)據(jù)自動(dòng)采集、傳輸、處理、打印等工作,免去了大量的手工勞動(dòng),極大地提高勞動(dòng)效率。
抄表手機(jī)是連接上位機(jī)與匯集器、智能水表的核心部分。它有鍵盤輸入,可以手動(dòng)查詢、更新數(shù)據(jù)庫(kù)中的數(shù)據(jù);大屏幕LCD點(diǎn)陣顯示,良好的人機(jī)對(duì)話界面;16MB FLASH RAM,用于存放系統(tǒng)配置文件、程序及數(shù)據(jù)庫(kù)文件;2個(gè)RS232接口,一個(gè)USB接口。其中一個(gè)RS232接口連接紅外轉(zhuǎn)發(fā)器,實(shí)現(xiàn)同智能水表、匯集器的有線或紅外通訊,完成對(duì)每個(gè)水表的數(shù)據(jù)采集工作,并可通過(guò)該接口對(duì)匯集器或智能水表進(jìn)行設(shè)置、修改。另一個(gè)RS232接口作為與微型串口打印機(jī)的通訊口。USB接口完成同計(jì)算機(jī)的通訊,可以將抄表手機(jī)中的數(shù)據(jù)傳送給計(jì)算機(jī),也可以接收計(jì)算機(jī)下傳的DBF和PRG文件及其他系統(tǒng)配置文件。
2 32位機(jī)S3C44B0X在智能抄表系統(tǒng)中的應(yīng)用
S3C44B0X CPU是SAMSUNG公司推出的基于ARM7TDMI核的精簡(jiǎn)指令系統(tǒng)的32位高速處理器。它的工作電壓為3.3V,內(nèi)核ARM7TDMI的工作電壓僅為2.5V,大大降低了芯片的功耗。S3C44B0X帶有:①8個(gè) MEMORY BANKS,用于管理外部存儲(chǔ)器,最大存儲(chǔ)容量達(dá)到256MB??赏鈹U(kuò)EPROM,SDRAM,F(xiàn)LASH RAM,USB,LCD。每個(gè)Bank支持8/16/32位的數(shù)據(jù)格式,可尋址32MB(除BANK0,其后4MB保留給內(nèi)部寄存器使用)。其中BANK0專用于系統(tǒng)啟動(dòng),因此它的存儲(chǔ)器必須是線性尋址并且有記憶功能;BANK6、7專用于SRAM、FP/EDO/SDRAM等;②LCD控制器支持單色、4、16級(jí)灰度的LCD模塊;支持4位的單雙行掃描、8位的單行掃描形式的顯示類型;支持的主要顯示點(diǎn)陣為:640×480, 320×240, 160×160等;③兩路UART口,最高波特率為115200baud,支持IrDA 1.0,可用于紅外通訊;④5路PWM調(diào)制輸出,可用于控制蜂鳴器輸出不同聲音,提示系統(tǒng)各類信息;⑤71個(gè)I/O口,包括8個(gè)外部中斷源,可用于鍵盤、LCD背光、照明控制等;⑥8路10位A/D轉(zhuǎn)換器,可用于系統(tǒng)電池檢測(cè);⑦帶日歷功能的系統(tǒng)實(shí)時(shí)時(shí)鐘,可用于紀(jì)錄抄表時(shí)間;⑧內(nèi)置的PLL鎖相環(huán)可以設(shè)置系統(tǒng)工作頻率,最高達(dá)73MHz;⑨4種系統(tǒng)工作模式:正常、慢速、閑置和停止模式。根據(jù)需要設(shè)置不同的工作方式,可以降低系統(tǒng)功耗。
用S3C44B0X實(shí)現(xiàn)智能抄表手機(jī)功能的硬件連接圖如圖2所示。
2.1 S3C44B0X與SDRAM HY57V161610D的連接
在抄表手機(jī)中運(yùn)行的是一個(gè)自己編寫的小型操作系統(tǒng)。它擁有自己的文件系統(tǒng),能夠解釋并運(yùn)行上位機(jī)所編寫的Foxpro程序。由于牽涉到對(duì)數(shù)據(jù)庫(kù)的操作,系統(tǒng)所需的內(nèi)存較大。本系統(tǒng)選擇了HYUNDAI公司的SDRAM—HY57V161610D。它的數(shù)據(jù)寬度為16位,由兩個(gè)BANK組成,共2MB的存儲(chǔ)容量。由于S3C44B0X的BANK6、7支持SDRAM,因此它與HY57V161610D的連接相當(dāng)簡(jiǎn)單,不需要軟件驅(qū)動(dòng)程序,只要設(shè)置兩個(gè)寄存器即可。在BWSCON寄存器中設(shè)置BANK6的數(shù)據(jù)寬度為16位,在BANKCON6寄存器中設(shè)置MT=0X3,Trcd=0X0,SCAN=0X0。
2.2 S3C44B0X與FLASH KM29U128T的連接
抄表手機(jī)中保存抄表所得的數(shù)據(jù)庫(kù)。當(dāng)用戶較多時(shí),數(shù)據(jù)庫(kù)會(huì)占用較大的存儲(chǔ)空間。特別是當(dāng)進(jìn)行一個(gè)月用水報(bào)表分析時(shí),匯集器每隔一小時(shí)(或者更短)就存儲(chǔ)一次數(shù)據(jù),抄表手機(jī)必須讀取這一個(gè)月的全部數(shù)據(jù)。此時(shí)的數(shù)據(jù)庫(kù)是相當(dāng)龐大的。因此選擇了SAMSUNG公司的FLASH—KM29U128T,該FLASH存儲(chǔ)容量達(dá)16MB,足夠數(shù)據(jù)庫(kù)存儲(chǔ)使用。它的不足之處是:它不是線性尋址的,存儲(chǔ)速度較慢;讀寫比較麻煩,必須按頁(yè)為單位(512字節(jié))進(jìn)行讀寫,每次寫之前必須對(duì)該頁(yè)所在的BLOCK進(jìn)行一次擦除;而且它并不保證每個(gè)BLOCK(32PAGE為一個(gè)BLOCK)都是好的,壞率為1%,但它保證前兩個(gè)BLOCK肯定是好的。
利用前兩個(gè)BLOCK建立一個(gè)FAT表,用邏輯的BLOCK號(hào)對(duì)應(yīng)物理上的BLOCK,每次讀寫都對(duì)邏輯上的BLOCK進(jìn)行操作。在每次寫操作時(shí)都進(jìn)行一次讀操作,與所寫的內(nèi)容進(jìn)行比較。如果發(fā)現(xiàn)有所不同,就再寫一次;若再錯(cuò)就認(rèn)為該BLOCK壞了,做好標(biāo)記并找后面好的BLOCK來(lái)代替,這樣能保證邏輯上的BLOCK都是好的。
2.3 3C44B0X與LCD TCM-A0902的連接
3C44B0X自帶LCD控制模塊,但它并不支持所有點(diǎn)陣形式的LCD。為了充分利用該芯片,可以選它所支持的LCD。但如果一定要用其他的LCD,這也沒關(guān)系,因?yàn)閷?duì)LCD的操作就象對(duì)其他的存儲(chǔ)器操作一樣簡(jiǎn)單。
本系統(tǒng)選用的是EPSON公司的TCM-A0902、單色、320×200。直接使用3C44B0X的BANK4來(lái)控制。由于3C44B0X是高速處理器,因此在對(duì)LCD操作時(shí)加入了軟延時(shí)。
LCD顯示滿屏的程序如下:
#define LCDCMD (*(volatile unsigned char *) 0x8000000)
#define LCDDATA (*(volatile unsigned char *) 0x8000001)
void Lcd_Displayfull(void ) //顯示滿屏
{ int j;
U8 i,k;
LCDCMD=PASET; //頁(yè)面設(shè)置,page0
LCDDATA=0x0;
LCDCMD=CASET; //列設(shè)置, column0
LCDDATA=0x0;
LCDDATA=0x0;
for(i=0;i<25;i++) //從第0頁(yè)到24頁(yè)
{ for(j=0;j<320;j++) //從第0列到319列
{ LCDCMD=MWRITE; //寫命令
LCDDATA =lcd_disp[i][j]; //寫數(shù)據(jù)
for(k=0;k<3;k++); //軟延時(shí)
}
LCDCMD = RETURN; //換頁(yè)
}
}
2.4 3C44B0X與USB9603的連接
由于抄表手機(jī)抄表所得的數(shù)據(jù)是以數(shù)據(jù)庫(kù)的形式傳送給上位機(jī),當(dāng)數(shù)據(jù)庫(kù)較大時(shí)不可能通過(guò)串口傳送。USB通訊時(shí),最高理論傳輸速率可達(dá)到12MB/s,因此可以通過(guò)USB來(lái)傳送數(shù)據(jù)庫(kù)。由于3C44B0X不帶USB接口,因此必須外擴(kuò)一個(gè)USB接口。
本系統(tǒng)選用NATIONAL公司的USBN9603。它是9602的改進(jìn)型,對(duì)9602存在的一些缺陷作了改正,并減少了部分寄存器,使得對(duì)USB通訊的編程相對(duì)簡(jiǎn)單了許多。由于牽涉到對(duì)FLASH的操作,USB的通訊速率并沒有想象的那樣高。下傳數(shù)據(jù)庫(kù)時(shí),由于要對(duì)FLASH進(jìn)行寫操作,USB的傳輸速率只有200KB/s;但是上傳時(shí)只對(duì)FLASH進(jìn)行讀操作,USB的傳輸速率就明顯快多了,可以達(dá)到800KB/s。因此,選擇何種FLASH,如何對(duì)FLASH進(jìn)行編程,對(duì)USB的傳輸速率有較大的影響。
2.5 抄表手機(jī)其他部分
抄表手機(jī)還包括鍵盤輸入、串口通訊、電池檢測(cè)等部分。這幾部分比較簡(jiǎn)單。比如鍵盤輸入部分:如果想用鍵盤中斷,只要用外部中斷EINT4、5、6、7,因?yàn)檫@四個(gè)中斷源的中斷入口地址是同一個(gè),再加上幾個(gè)普通的I/O口就可以組成一個(gè)中斷鍵盤。如果想改成掃描鍵盤,那也很簡(jiǎn)單,只要把EINT4、5、6、7設(shè)置成I/O口功能就可以了,硬件上不需要作任何改動(dòng)。串口通訊也很簡(jiǎn)單,只要在S3C44B0X的UART口上外接一片MAX232電平轉(zhuǎn)換芯片就可以實(shí)現(xiàn)標(biāo)準(zhǔn)的RS232通訊功能。電池檢測(cè)部分只要把來(lái)自電池部分的電壓連接到某個(gè)A/D口就可以了。如果所用的電池電壓高于S3C44B0X的工作電壓(3.3V),通過(guò)電阻分壓后再接到A/D口。
由于FLASH KM29U128T不是線性尋址的,不能作為系統(tǒng)啟動(dòng)之用。因此,需要一片線性尋址的EEPROM(如29EE010)作為系統(tǒng)初始化使用。它的主要任務(wù)是初始化系統(tǒng),把存于FLASH中的操作系統(tǒng)調(diào)入SDRAM中運(yùn)行。因此,EEPROM的容量不需很大。硬件連接時(shí)注意EEPROM的片選信號(hào)應(yīng)接S3C44B0X的BANK0(NGCS0)。
自來(lái)水表的智能抄表系統(tǒng)是個(gè)比較大的系統(tǒng),本文只涉及到它的核心部分,而且是硬件部分。軟件部分的工作量也較大,要能夠用S3C44B0X的指令解釋并運(yùn)行FOXPRO程序。以ARM7TDMI為內(nèi)核的S3C44B0X能夠在SDT2.5的調(diào)試平臺(tái)上用標(biāo)準(zhǔn)C語(yǔ)言進(jìn)行編程調(diào)試、軟件仿真,大大縮短了軟件的開發(fā)周期。
參考文獻(xiàn)
1 SUMSUNG公司.S3C44B0X USER MANUAL.
2 SUMSUNG公司.SPECIFICATION KM29U128T.
3 EPSON 公司.SPECIFICATION TCM-A0902-10.
4 NATIONAL公司.SPECIFICATION USBN9603.2000
5 HYUNDAL公司.SPECIFICATION HY57V161610D.1999