ARM CPU S3C44B0X在水表智能抄表系统中应用
扫描二维码
随时随地手机看文章
摘 要: 介绍水表智能抄表系统的核心部分--抄表手机,以及如何用32位机s3c44b0x来实现抄表手机的功能。
关键词: 智能抄表系统 抄表手机 s3c44b0x cpu arm7tdmi核 usb总线1 水表智能抄表系统简介
目前,自来水表都是机械式的,而且多数自来水表都装在户内,这给水表抄表员带来了很大的麻烦。当抄表员抄表时,必须挨家挨户用肉眼读取水表的读数,然后登记在随身携带的小本子上。回去以后,还要由专门的电脑输入员把水表读数输入到计算机中的数据库里,计算出本月的用水量,再打印出本月各用户应交的水费。这一过程不但工作量大,而且很容易出错。现在得理上海电子有限公司开发出了智能水表,对机械水表中的指针转过的圈数进行计数,通过串口 rs422 发送水表读数。这给自来水表的智能抄表系统奠定了基础。
自来水表的智能抄表系统框图如图1所示。用户的机械式水表改装成智能水表后,连接到装在楼底下的汇集器上。汇集器每隔一定的时间(具体时间可以设置)对智能水表采集一次数据,保存在存储器里。如果该楼梯的用户数大于16个或连线超过500m时,需在智能水表与汇集器之间加中继器,以增加驱动能力。智能抄表系统中的核心部分是便携式抄表手机。它的主要任务是用自己的指令解释并运行上位机所编的foxpro程序;采集汇集器或者智能水表的数据,更新数据库中的内容;并与上个月数据相比较,计算出用水量并当场打印账单,由抄表员将各用户的账单放到楼梯口的用户信箱中;通过手机上的usb接口可以将数据传输给计算机,由计算机进行处理、存档。从而实现了水表到计算机的数据自动采集、传输、处理、打印等工作,免去了大量的手工劳动,极大地提高劳动效率。
抄表手机是连接上位机与汇集器、智能水表的核心部分。它有键盘输入,可以手动查询、更新数据库中的数据;大屏幕lcd点阵显示,良好的人机对话界面;16mb flash ram,用于存放系统配置文件、程序及数据库文件;2个rs232接口,一个usb接口。其中一个rs232接口连接红外转发器,实现同智能水表、汇集器的有线或红外通讯,完成对每个水表的数据采集工作,并可通过该接口对汇集器或智能水表进行设置、修改。另一个rs232接口作为与微型串口打印机的通讯口。usb接口完成同计算机的通讯,可以将抄表手机中的数据传送给计算机,也可以接收计算机下传的dbf和prg文件及其他系统配置文件。2 32位机s3c44b0x在智能抄表系统中的应用
s3c44b0x cpu是samsung公司推出的基于arm7tdmi核的精简指令系统的32位高速处理器。它的工作电压为3.3v,内核arm7tdmi的工作电压仅为2.5v,大大降低了芯片的功耗。s3c44b0x带有:①8个 memory banks?用于管理外部存储器,最大存储容量达到256mb。可外扩eprom sdram flash ram usb lcd。每个bank支持8/18/32位的数据格式,可寻址32mb(除bank0,其后4mb保留给内部寄存器使用)。其中bank0专用于系统启动,因此它的存储器必须是线性寻址并且有记忆功能;bank8、7专用于sram、fp/edo/sdram等;②lcd控制器支持单色、4、16级灰度的lcd模块;支持4位的单双行扫描、8位的单行扫描形式的显示类型;支持的主要显示点阵为:640×480? 320×240 160×160等;③两路uart口,最高波特率为115200baud,支持irda 1.0,可用于红外通讯;④5路pwm调制输出,可用于控制蜂鸣器输出不同声音,提示系统各类信息;⑤71个i/o口,包括8个外部中断源,可用于键盘、lcd背光、照明控制等;⑥8路10位a/d转换器,可用于系统电池检测;⑦带日历功能的系统实时时钟,可用于纪录抄表时间;⑧内置的pll锁相环可以设置系统工作频率,最高达73mhz;⑨4种系统工作模式:正常、慢速、闲置和停止模式。根据需要设置不同的工作方式,可以降低系统功耗。
用s3c44b0x实现智能抄表手机功能的硬件连接图如图2所示。2.1 s3c44b0x与sdram hy57v161610d的连接
在抄表手机中运行的是一个自己编写的小型操作系统。它拥有自己的文件系统,能够解释并运行上位机所编写的foxpro程序。由于牵涉到对数据库的操作,系统所需的内存较大。本系统选择了hyundai公司的sdram-hy57v161610d。它的数据宽度为16位,由两个bank组成,共2mb的存储容量。由于s3c44b0x的bank6、7支持sdram?因此它与hy57v161610d的连接相当简单?不需要软件驱动程序,只要设置两个寄存器即可。在bwscon寄存器中设置bank6的数据宽度为16位,在bankcon6寄存器中设置mt=0x3,trcd=0x0,scan=0x0。
2.