S3C44B0X在水表智能抄表系統中應用
2.2 S3C44B0X與FLASH KM29U128T的連接
抄表手機中保存抄表所得的數據庫。當用戶(hù)較多時(shí),數據庫會(huì )占用較大的存儲空間。特別是當進(jìn)行一個(gè)月用水報表分析時(shí),匯集器每隔一小時(shí)(或者更短)就存儲一次數據,抄表手機必須讀取這一個(gè)月的全部數據。此時(shí)的數據庫是相當龐大的。因此選擇了SAMSUNG公司的FLASH-KM29U128T,該FLASH存儲容量達16MB,足夠數據庫存儲使用。它的不足之處是:它不是線(xiàn)性尋址的,存儲速度較慢;讀寫(xiě)比較麻煩,必須按頁(yè)為單位(512字節)進(jìn)行讀寫(xiě),每次寫(xiě)之前必須對該頁(yè)所在的BLOCK進(jìn)行一次擦除;而且它并不保證每個(gè)BLOCK(32PAGE為一個(gè)BLOCK)都是好的,壞率為1%,但它保證前兩個(gè)BLOCK肯定是好的。
利用前兩個(gè)BLOCK建立一個(gè)FAT表,用邏輯的BLOCK號對應物理上的BLOCK,每次讀寫(xiě)都對邏輯上的BLOCK進(jìn)行操作。在每次寫(xiě)操作時(shí)都進(jìn)行一次讀操作,與所寫(xiě)的內容進(jìn)行比較。如果發(fā)現有所不同,就再寫(xiě)一次;若再錯就認為該BLOCK壞了,做好標記并找后面好的BLOCK來(lái)代替,這樣能保證邏輯上的BLOCK都是好的。
2.3 3C44B0X與LCD TCM-A0902的連接
3C44B0X自帶LCD控制模塊,但它并不支持所有點(diǎn)陣形式的LCD。為了充分利用該芯片,可以選它所支持的LCD。但如果一定要用其他的LCD,這也沒(méi)關(guān)系,因為對LCD的操作就象對其他的存儲器操作一樣簡(jiǎn)單。
本系統選用的是EPSON公司的TCM-A0902、單色、320×200。直接使用3C44B0X的BANK4來(lái)控制。由于3C44B0X是高速處理器,因此在對LCD操作時(shí)加入了軟延時(shí)。
LCD顯示滿(mǎn)屏的程序如下:
#define LCDCMD volatile unsigned char 0x8000000
#define LCDDATA volatile unsigned char 0x8000001
void Lcd_Displayfull void //顯示滿(mǎn)屏
int j;
U8 I k;
LCDCMD=PASET; //頁(yè)面設置,page0
LCDDATA=0x0;
LCDCMD=CASET; //列設置, column0
LCDDATA=0x0;
LCDDATA=0x0;
For i=0i<25 I++ //從第0頁(yè)到24頁(yè)
for j=0j<320j++ //從第0列到319列
LCDCMD=MWRITE; //寫(xiě)命令
LCDDATA =1cd_disp I j; //寫(xiě)數據
For k=0k<3k++; //軟延時(shí)
LCDCMD=RETURN; //換頁(yè)
2.4 3C44B0X與USB9603的連接
由于抄表手機抄表所得的數據是以數據庫的形式傳送給上位機,當數據庫較大時(shí)不可能通過(guò)串口傳送。USB通訊時(shí),最高理論傳輸速率可達到12MB/s,因此可以通過(guò)USB來(lái)傳送數據庫。由于3C44B0X不帶USB接口,因此必須外擴一個(gè)USB接口。
本系統選用NATIONAL公司的USBN9603。它是9602的改進(jìn)型,對9602存在的一些缺陷作了改正,并減少了部分寄存器,使得對USB通訊的編程相對簡(jiǎn)單了許多。由于牽涉到對FLASH的操作,USB的通訊速率并沒(méi)有想象的那樣高。下傳數據庫時(shí),由于要對FLASH進(jìn)行寫(xiě)操作,USB的傳輸速率只有200KB/s但是上傳時(shí)只對FLASH進(jìn)行讀操作,USB的傳輸速率就明顯快多了,可以達到800KB/s。因此,選擇何種FLASH,如何對FLASH進(jìn)行編程,對USB的傳輸速率有較大的影響。
2.5 抄表手機其他部分
抄表手機還包括鍵盤(pán)輸入、串口通訊、電池檢測等部分。這幾部分比較簡(jiǎn)單。比如鍵盤(pán)輸入部分:如果想用鍵盤(pán)中斷,只要用外部中斷EINT4、5、6、7,因為這四個(gè)中斷源的中斷入口地址是同一個(gè),再加上幾個(gè)普通的I/O口就可以組成一個(gè)中斷鍵盤(pán)。如果想改成掃描鍵盤(pán),那也很簡(jiǎn)單,只要把EINT4、5、6、7設置成I/O口功能就可以了,硬件上不需要作任何改動(dòng)。串口通訊也很簡(jiǎn)單,只要在S3C44B0X的UART口上外接一片MAX232電平轉換芯片就可以實(shí)現標準的RS232通訊功能。電池檢測部分只要把來(lái)自電池部分的電壓連接到某個(gè)A/D口就可以了。如果所用的電池電壓高于S3C44B0X的工作電壓(3.3V),通過(guò)電阻分壓后再接到A/D口。
由于FLASH KM29U128T不是線(xiàn)性尋址的不能作為系統啟動(dòng)之用。因此,需要一片線(xiàn)性尋址的EEPROM 如29EE010 作為系統初始化使用。它的主要任務(wù)是初始化系統,把存于FLASH中的操作系統調入SDRAM中運行。因此,EEPROM的容量不需很大。硬件連接時(shí)注意EEPROM的片選信號應接S3C44B0X的BANK0NGCS0。
自來(lái)水表的智能抄表系統是個(gè)比較大的系統,本文只涉及到它的核心部分,而且是硬件部分。軟件部分的工作量也較大,要能夠用S3C44B0X的指令解釋并運行FOXPRO程序。以ARM7TDMI為內核的S3C44B0X能夠在SDT2.5的調試平臺上用標準C語(yǔ)言進(jìn)行編程調試、軟件仿真,大大縮短了軟件的開(kāi)發(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
6.S3C44B0Xdatasheethttp://www.dzsc.com/datasheet/S3C44B0X_589522.html.
7.RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
8.USBN9603datasheethttp://www.dzsc.com/datasheet/USBN9603_675540.html.
9.MAX232datasheethttp://www.dzsc.com/datasheet/MAX232_1074207.html.
10.29EE010datasheethttp://www.dzsc.com/datasheet/29EE010_1134769.html
評論