新闻中心

EEPW首页>嵌入式系统>设计应用> S3C44B0X在水表智能抄表系统中应用

S3C44B0X在水表智能抄表系统中应用

作者: 时间:2012-10-29 来源:网络 收藏


2.2与FLASH KM29U128T的连接
中保存抄表所得的数据库。当用户较多时,数据库会占用较大的存储空间。特别是当进行一个月用水报表分析时,汇集器每隔一小时(或者更短)就存储一次数据,必须读取这一个月的全部数据。此时的数据库是相当庞大的。因此选择了SAMSUNG公司的FLASH-KM29U128T,该FLASH存储容量达16MB,足够数据库存储使用。它的不足之处是:它不是线性寻址的,存储速度较慢;读写比较麻烦,必须按页为单位(512字节)进行读写,每次写之前必须对该页所在的BLOCK进行一次擦除;而且它并不保证每个BLOCK(32PAGE为一个BLOCK)都是好的,坏率为1%,但它保证前两个BLOCK肯定是好的。

利用前两个BLOCK建立一个FAT表,用逻辑的BLOCK号对应物理上的BLOCK,每次读写都对逻辑上的BLOCK进行操作。在每次写操作时都进行一次读操作,与所写的内容进行比较。如果发现有所不同,就再写一次;若再错就认为该BLOCK坏了,做好标记并找后面好的BLOCK来代替,这样能保证逻辑上的BLOCK都是好的。

2.3 3C44B0X与LCD TCM-A0902的连接
3C44B0X自带LCD控制模块,但它并不支持所有点阵形式的LCD。为了充分利用该芯片,可以选它所支持的LCD。但如果一定要用其他的LCD,这也没关系,因为对LCD的操作就象对其他的存储器操作一样简单。
本系统选用的是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 =1cd_disp I j; //写数据
For k=0k<3k++; //软延时

LCDCMD=RETURN; //换页

2.4 3C44B0X与USB9603的连接
由于抄表所得的数据是以数据库的形式传送给上位机,当数据库较大时不可能通过串口传送。USB通讯时,最高理论传输速率可达到12MB/s,因此可以通过USB来传送数据库。由于3C44B0X不带USB接口,因此必须外扩一个USB接口。
本系统选用NATIONAL公司的USBN9603。它是9602的改进型,对9602存在的一些缺陷作了改正,并减少了部分寄存器,使得对USB通讯的编程相对简单了许多。由于牵涉到对FLASH的操作,USB的通讯速率并没有想象的那样高。下传数据库时,由于要对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口功能就可以了,硬件上不需要作任何改动。串口通讯也很简单,只要在的UART口上外接一片MAX232电平转换芯片就可以实现标准的RS232通讯功能。电池检测部分只要把来自电池部分的电压连接到某个A/D口就可以了。如果所用的电池电压高于的工作电压(3.3V),通过电阻分压后再接到A/D口。

由于FLASH KM29U128T不是线性寻址的不能作为系统启动之用。因此,需要一片线性寻址的EEPROM 如29EE010 作为系统初始化使用。它的主要任务是初始化系统,把存于FLASH中的操作系统调入SDRAM中运行。因此,EEPROM的容量不需很大。硬件连接时注意EEPROM的片选信号应接S3C44B0X的BANK0NGCS0。
自来水表的是个比较大的系统,本文只涉及到它的核心部分,而且是硬件部分。软件部分的工作量也较大,要能够用S3C44B0X的指令解释并运行FOXPRO程序。以ARM7TDMI为内核的S3C44B0X能够在SDT2.5的调试平台上用标准C语言进行编程调试、软件仿真,大大缩短了软件的开发周期。

参考文献
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

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭