《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > ARM CPU S3C44B0X在水表智能抄表系統(tǒng)中的應用
ARM CPU S3C44B0X在水表智能抄表系統(tǒng)中的應用
汪葉斌 趙繼敏
摘要: 介紹水表智能抄表系統(tǒng)的核心部分——抄表手機,,以及如何用32位機S3C44B0X來實現(xiàn)抄表手機的功能。
Abstract:
Key words :

  摘  要: 介紹水表" title="水表">水表智能抄表系統(tǒng)的核心部分——抄表手機,以及如何用32位機S3C44B0X" title="S3C44B0X">S3C44B0X來實現(xiàn)抄表手機的功能,。

  關鍵詞: 智能抄表系統(tǒng)  抄表手機  S3C44B0X CPU  ARM" title="ARM">ARM7TDMI核 USB" title="USB">USB總線

 1 水表智能抄表系統(tǒng)簡介

  目前,,自來水表都是機械式的,,而且多數(shù)自來水表都裝在戶內(nèi),,這給水表抄表員帶來了很大的麻煩。當抄表員抄表時,,必須挨家挨戶用肉眼讀取水表的讀數(shù),,然后登記在隨身攜帶的小本子上?;厝ヒ院?,還要由專門的電腦輸入員把水表讀數(shù)輸入到計算機中的數(shù)據(jù)庫里,計算出本月的用水量,,再打印出本月各用戶應交的水費,。這一過程不但工作量大,而且很容易出錯?,F(xiàn)在得理上海電子有限公司開發(fā)出了智能水表,,對機械水表中的指針轉過的圈數(shù)進行計數(shù),通過串口(RS422)發(fā)送水表讀數(shù),。這給自來水表的智能抄表系統(tǒng)奠定了基礎,。

  自來水表的智能抄表系統(tǒng)框圖如圖1所示。用戶的機械式水表改裝成智能水表后,,連接到裝在樓底下的匯集器上,。匯集器每隔一定的時間(具體時間可以設置)對智能水表采集一次數(shù)據(jù),保存在存儲器里,。如果該樓梯的用戶數(shù)大于16個或連線超過500m時,,需在智能水表與匯集器之間加中繼器,以增加驅動能力,。智能抄表系統(tǒng)中的核心部分是便攜式抄表手機,。它的主要任務是用自己的指令解釋并運行上位機所編的Foxpro程序;采集匯集器或者智能水表的數(shù)據(jù),更新數(shù)據(jù)庫中的內(nèi)容;并與上個月數(shù)據(jù)相比較,,計算出用水量并當場打印賬單,,由抄表員將各用戶的賬單放到樓梯口的用戶信箱中;通過手機上的USB接口可以將數(shù)據(jù)傳輸給計算機,由計算機進行處理,、存檔,。從而實現(xiàn)了水表到計算機的數(shù)據(jù)自動采集、傳輸,、處理,、打印等工作,免去了大量的手工勞動,,極大地提高勞動效率,。

 

 

  抄表手機是連接上位機與匯集器、智能水表的核心部分,。它有鍵盤輸入,,可以手動查詢、更新數(shù)據(jù)庫中的數(shù)據(jù);大屏幕LCD點陣顯示,,良好的人機對話界面;16MB FLASH RAM,,用于存放系統(tǒng)配置文件、程序及數(shù)據(jù)庫文件;2個RS232接口,,一個USB接口,。其中一個RS232接口連接紅外轉發(fā)器,實現(xiàn)同智能水表,、匯集器的有線或紅外通訊,,完成對每個水表的數(shù)據(jù)采集工作,并可通過該接口對匯集器或智能水表進行設置,、修改,。另一個RS232接口作為與微型串口打印機的通訊口。USB接口完成同計算機的通訊,,可以將抄表手機中的數(shù)據(jù)傳送給計算機,,也可以接收計算機下傳的DBF和PRG文件及其他系統(tǒng)配置文件。

2 32位機S3C44B0X在智能抄表系統(tǒng)中的應用

  S3C44B0X CPU是SAMSUNG公司推出的基于ARM7TDMI核的精簡指令系統(tǒng)的32位高速處理器,。它的工作電壓為3.3V,,內(nèi)核ARM7TDMI的工作電壓僅為2.5V,大大降低了芯片的功耗,。S3C44B0X帶有:①8個 MEMORY BANKS,,用于管理外部存儲器,最大存儲容量達到256MB,??赏鈹UEPROM,SDRAM,,F(xiàn)LASH RAM,,USB,LCD,。每個Bank支持8/16/32位的數(shù)據(jù)格式,,可尋址32MB(除BANK0,其后4MB保留給內(nèi)部寄存器使用),。其中BANK0專用于系統(tǒng)啟動,,因此它的存儲器必須是線性尋址并且有記憶功能;BANK6,、7專用于SRAM、FP/EDO/SDRAM等;②LCD控制器支持單色,、4,、16級灰度的LCD模塊;支持4位的單雙行掃描、8位的單行掃描形式的顯示類型;支持的主要顯示點陣為:640×480,, 320×240,, 160×160等;③兩路UART口,最高波特率為115200baud,,支持IrDA 1.0,,可用于紅外通訊;④5路PWM調(diào)制輸出,可用于控制蜂鳴器輸出不同聲音,,提示系統(tǒng)各類信息;⑤71個I/O口,,包括8個外部中斷源,可用于鍵盤,、LCD背光,、照明控制等;⑥8路10位A/D轉換器,可用于系統(tǒng)電池檢測;⑦帶日歷功能的系統(tǒng)實時時鐘,,可用于紀錄抄表時間;⑧內(nèi)置的PLL鎖相環(huán)可以設置系統(tǒng)工作頻率,,最高達73MHz;⑨4種系統(tǒng)工作模式:正常、慢速,、閑置和停止模式,。根據(jù)需要設置不同的工作方式,可以降低系統(tǒng)功耗,。

  用S3C44B0X實現(xiàn)智能抄表手機功能的硬件連接圖如圖2所示,。

 

 

2.1 S3C44B0X與SDRAM HY57V161610D的連接

  在抄表手機中運行的是一個自己編寫的小型操作系統(tǒng)。它擁有自己的文件系統(tǒng),,能夠解釋并運行上位機所編寫的Foxpro程序,。由于牽涉到對數(shù)據(jù)庫的操作,系統(tǒng)所需的內(nèi)存較大,。本系統(tǒng)選擇了HYUNDAI公司的SDRAM—HY57V161610D,。它的數(shù)據(jù)寬度為16位,由兩個BANK組成,,共2MB的存儲容量,。由于S3C44B0X的BANK6、7支持SDRAM,,因此它與HY57V161610D的連接相當簡單,,不需要軟件驅動程序,只要設置兩個寄存器即可,。在BWSCON寄存器中設置BANK6的數(shù)據(jù)寬度為16位,,在BANKCON6寄存器中設置MT=0X3,,Trcd=0X0,SCAN=0X0,。

2.2 S3C44B0X與FLASH KM29U128T的連接

  抄表手機中保存抄表所得的數(shù)據(jù)庫,。當用戶較多時,數(shù)據(jù)庫會占用較大的存儲空間,。特別是當進行一個月用水報表分析時,,匯集器每隔一小時(或者更短)就存儲一次數(shù)據(jù),,抄表手機必須讀取這一個月的全部數(shù)據(jù),。此時的數(shù)據(jù)庫是相當龐大的。因此選擇了SAMSUNG公司的FLASH—KM29U128T,,該FLASH存儲容量達16MB,,足夠數(shù)據(jù)庫存儲使用。它的不足之處是:它不是線性尋址的,,存儲速度較慢;讀寫比較麻煩,,必須按頁為單位(512字節(jié))進行讀寫,每次寫之前必須對該頁所在的BLOCK進行一次擦除;而且它并不保證每個BLOCK(32PAGE為一個BLOCK)都是好的,,壞率為1%,,但它保證前兩個BLOCK肯定是好的。

  利用前兩個BLOCK建立一個FAT表,,用邏輯的BLOCK號對應物理上的BLOCK,,每次讀寫都對邏輯上的BLOCK進行操作。在每次寫操作時都進行一次讀操作,,與所寫的內(nèi)容進行比較,。如果發(fā)現(xiàn)有所不同,就再寫一次;若再錯就認為該BLOCK壞了,,做好標記并找后面好的BLOCK來代替,,這樣能保證邏輯上的BLOCK都是好的。

2.3 3C44B0X與LCD TCM-A0902的連接

  3C44B0X自帶LCD控制模塊,,但它并不支持所有點陣形式的LCD,。為了充分利用該芯片,可以選它所支持的LCD,。但如果一定要用其他的LCD,,這也沒關系,因為對LCD的操作就象對其他的存儲器操作一樣簡單,。

  本系統(tǒng)選用的是EPSON公司的TCM-A0902,、單色、320×200,。直接使用3C44B0X的BANK4來控制,。由于3C44B0X是高速處理器,,因此在對LCD操作時加入了軟延時。

  LCD顯示滿屏的程序如下:

#define LCDCMD (*(volatile unsigned char *) 0x8000000)

#define LCDDATA (*(volatile unsigned char *) 0x8000001)

void Lcd_Displayfull(void )                //顯示滿屏

{     int j;

       U8 i,,k;

       LCDCMD=PASET;                    //頁面設置,,page0

       LCDDATA=0x0;

       LCDCMD=CASET;                       //列設置, column0

       LCDDATA=0x0;

       LCDDATA=0x0;

    for(i=0,;i<25,;i++)                //從第0頁到24頁

              { for(j=0;j<320,;j++)        //從第0列到319列

                    { LCDCMD=MWRITE;       //寫命令

                    LCDDATA =lcd_disp[i][j];  //寫數(shù)據(jù)

                    for(k=0,;k<3;k++);       //軟延時

              }

              LCDCMD = RETURN; //換頁

   }

}

2.4 3C44B0X與USB9603的連接

  由于抄表手機抄表所得的數(shù)據(jù)是以數(shù)據(jù)庫的形式傳送給上位機,,當數(shù)據(jù)庫較大時不可能通過串口傳送,。USB通訊時,最高理論傳輸速率可達到12MB/s,,因此可以通過USB來傳送數(shù)據(jù)庫,。由于3C44B0X不帶USB接口,因此必須外擴一個USB接口,。

本系統(tǒng)選用NATIONAL公司的USBN9603,。它是9602的改進型,對9602存在的一些缺陷作了改正,,并減少了部分寄存器,,使得對USB通訊的編程相對簡單了許多。由于牽涉到對FLASH的操作,,USB的通訊速率并沒有想象的那樣高,。下傳數(shù)據(jù)庫時,由于要對FLASH進行寫操作,,USB的傳輸速率只有200KB/s,;但是上傳時只對FLASH進行讀操作,USB的傳輸速率就明顯快多了,,可以達到800KB/s,。因此,選擇何種FLASH,,如何對FLASH進行編程,,對USB的傳輸速率有較大的影響。

2.5 抄表手機其他部分

  抄表手機還包括鍵盤輸入,、串口通訊,、電池檢測等部分。這幾部分比較簡單,。比如鍵盤輸入部分:如果想用鍵盤中斷,,只要用外部中斷EINT4,、5、6,、7,,因為這四個中斷源的中斷入口地址是同一個,再加上幾個普通的I/O口就可以組成一個中斷鍵盤,。如果想改成掃描鍵盤,,那也很簡單,只要把EINT4,、5,、6、7設置成I/O口功能就可以了,,硬件上不需要作任何改動,。串口通訊也很簡單,,只要在S3C44B0X的UART口上外接一片MAX232電平轉換芯片就可以實現(xiàn)標準的RS232通訊功能,。電池檢測部分只要把來自電池部分的電壓連接到某個A/D口就可以了。如果所用的電池電壓高于S3C44B0X的工作電壓(3.3V),,通過電阻分壓后再接到A/D口,。

  由于FLASH KM29U128T不是線性尋址的,不能作為系統(tǒng)啟動之用,。因此,,需要一片線性尋址的EEPROM(如29EE010)作為系統(tǒng)初始化使用。它的主要任務是初始化系統(tǒng),,把存于FLASH中的操作系統(tǒng)調(diào)入SDRAM中運行,。因此,EEPROM的容量不需很大,。硬件連接時注意EEPROM的片選信號應接S3C44B0X的BANK0(NGCS0),。

  自來水表的智能抄表系統(tǒng)是個比較大的系統(tǒng),本文只涉及到它的核心部分,,而且是硬件部分,。軟件部分的工作量也較大,要能夠用S3C44B0X的指令解釋并運行FOXPRO程序,。以ARM7TDMI為內(nèi)核的S3C44B0X能夠在SDT2.5的調(diào)試平臺上用標準C語言進行編程調(diào)試,、軟件仿真,大大縮短了軟件的開發(fā)周期,。

 

參考文獻

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 

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