文献标识码:A
文章编号: 0258-7998(2013)04-0068-04
现今的抄表方式主要有两种,第一种方式为人工抄表,不仅效率低,而且给用户带来诸多不便。第二种方式是利用远传抄表系统进行抄表,市场上目前有两种水表远传系统部分投入试用,一种是三表(水电煤气)远传抄表系统,另一种是IC卡式水表[1]。这两种产品由于维护量较大,价格高,且需要实时带电工作,易造成停电漏记等问题,推广有一定难度。
本文提出了一种基于DSP的多路抄表系统。该系统以视频解码芯片和数字信号处理器DSP为主要核心,可实现对多路水表号码的采集、识别及传输等远程抄表功能,每个水表读数用时0.6 s,满足实际需要。利用该系统,抄表员不用挨家挨户去手动抄表,而是在一个地点将各用户的水表号码自动抄写,并保存在掌上电脑中。该系统克服了现有抄表系统的缺陷,属于真正的直读工作方式,而且无需24小时不间断供电,无累计误差,获取水表表盘实际号码的读数,可以方便用户核对。
1 系统工作原理
抄表系统整体框图如1所示。系统上电后,将固化在外部程序存储器SPI中的系统程序下载到信号处理器内部的随机存储器中,进而系统可以完成各种初始化的操作流程。视频解码芯片通过I2C总线初始化后,将由图像传感器传来的图像模拟信号转化为标准数字图像信号送到数字信号处理器(DSP)中,然后再以DSP为主处理芯片,将采集到的图像进行识别处理。当一路水表读数识别完成后,通过多路转换开关切入到下一路水表进行采集和识别,最终通过LCD液晶屏显示识别结果,并将读数通过射频信号发生器传到掌上电脑中,完成抄表功能。
2 系统硬件设计
系统硬件设计主要包括图像采集及识别模块、多路转换模块、人机接口模块及数据传输模块四个部分。
2.1 图像采集及识别模块
图像采集及识别模块主要是由图像传感器、视频解码芯片及DSP组成。该模块主要功能是将图像的模拟信号转换成DSP可接收得数字信号,并在DSP内完成对数字图像的采集及识别过程。
系统中,图像传感器采用传统的CMOS摄像头,安放在水表表盘正上方。该传感器通过一根电源线和一根视频线与主处理板相连,输出水表图像的模拟信号。
视频解码芯片主要采用Philips公司的SAA7113H芯片。它可以将图像传感器输出的模拟信号经过放大、滤波、A/D转换等过程[2]转换成数字信号送入DSP中。同时,它可从视频信号中分离出场同步信号和行同步信号,用于对图像的采集。
SAA7113H芯片在上电后,必须由前端处理器DSP通过I2C串行总线对其内部寄存器进行初始化设置后,才能工作在系统所需状态。I2C总线有两条线路:串行数据线SDA和串行时钟线SCL。系统设计中,将这两条总线分别与DSP中的两个I/O口相连,由软件编程来模拟实现I2C总线的通信,完成对SAA7I13H寄存器的初始化操作。
考虑到DSP的性价比和市场应用的份额,本系统采用的DSP为TMS329VC5509A,这款芯片属于TI公司DSP中的5000系列。该芯片虽为定点运算,但运算速度及精度基本可以满足本系统的需要,而且价格较为低廉。TMS320VC5509A的CPU的主时钟能够最高工作在200 MHz,有128 K×16 bit随机读写存储器(16-bit words RAM)和32 K×16 bit只读存储器(16-bit words ROM)[3]。
由于TMS329VC5509A中可直接用于控制的I/O口较少,所以在系统设计中,将DSP上多通道缓冲串口1(MCBSP1)中的CLKR1和CLKX1引脚配置成通用I/O口,与视频解码器的行场输出相连,用来检测数字图像信号的得行信号和场信号,以保证采集时信号时序的正确和图像的完整。MCBSP0中的DX0引脚配置成通用I/O口,为SAA7113H芯片提供使能信号。由于DSP 5000系列中没有专门用于接收数字图像信号的VP接口,所以在本系统中,图像的数据信号是从DSP中的外部存储接口(EMIF)的8根并行数据线D0~D7传入DSP中的,并储存在DSP内部的内存空间,整个的图像的识别过程在DSP内部进行。DSP与视频解码芯片SAA3113H的逻辑连接图如图2所示。
2.2 多路转换模块
由于系统最终要实现多路水表读数的采集与识别,所以在图像传感器与视频解码芯片之间设计了一个多路转换开关,如图3所示。该开关主要采用芯片CD4051实现,可用于图像模拟信号的输入、输出。CD4051相当于一个单刀八掷开关,可实现1路对8路的双向输入和输出。开关接通哪一通道,由其控制引脚所输入的3位地址码ABC来决定,本系统中地址码由DSP的I/O口提供。目前用于调试的系统仅采用1个CD4051开关,可实现8路水表图像的采集和识别。根据实际需要,利用多个该芯片的组合,可扩展实现对16、32、64等多路水表的抄录。
2.3 人机接口模块
整个系统的人机操作接口包括一个3×4键盘和LCD显示屏两部分,以方便用户对系统的操作和观察。通过人机接口,可实现对水表的多路采集识别、单路采集识别、多路数据传输、单路数据传输、结果显示等控制功能。系统中,LCD液晶显示屏采用NEC公司的μPD161621P系列,键盘设计采用传统矩阵键盘电路,这两个部分都是通过DSP外扩可编程逻辑器件(CPLD)实现。
2.4 数据传输模块
水表号码识别结束后,需要将数据进行传输并保存。数据传输模块包括232接口﹑射频信号发生器和掌上电脑三部分。232接口是DSP通过CPLD和MAX232芯片扩展实现。射频信号发生器是一个集成模块,3.3 V电源供电,是DSP和掌上电脑之间数据传输的纽带。水表数据通过232接口传入射频信号发生器中,并自动以射频信号的形式发射出去,传输速度为9 600波特率。掌上电脑可以视为一个射频信号接收器,其内核为ARM7,通过编程,可接收射频信号发生器传来的数据并保存。这样抄表人员只需拿着掌上电脑就可接收各个水表的数据。
3 系统软件设计
系统软件设计主要包括DSP初始化程序、视频解码芯片初始化程序、号码采集程序和号码识别程序四部分。
3.1 DSP初始化程序
DSP初始化程序主要通过对DSP相应功能寄存器的赋值,来实现对系统的初始化操作,以满足系统工作时的要求。主要包括以下操作:
(1)配置时钟发生器的寄存器CLKMD,地址为0x1C00,对其赋值为0x2813,使系统工作在192 MHz频率下。
(2) 配置DSP中CMD文件,分配内存空间。中断向量表定义在0x200,程序存储空间为0x2300~0x0ff0,数据存储空间为0x12200~0x40000。图像定义在固定的地址0x22200下,以方便调试时对采集的图片进行查看。
(3) 配置DSP状态寄存器ST1,地址为0x0003,设置值为0x6900,关闭系统可屏蔽中断。
(4) 将DSP中EMIF控制寄存器设置为与Synchronous Sdram相连接的模式,并且将EMIF工作模式寄存器EBSR(地址为0x6C00)的Parallel Port位置为0,代表当前工作状态为DATA EMIF MODE[4],为图像数据信号采集做好相关配置。
3.2 视频解码器初始化
该程序主要是对SAA7113H芯片进行初始化操作,对其片上功能寄存器的读写完全按照I2C总线协议形式完成。通信时,采用I2C工作模式中的从接收模式,DSP作为主设备,视频解码器作为从设备(地址为0x4A),数据传输采用8位寻址数据格式。由于程序比较繁琐,本文没有列出具体程序清单。SAA7113H主要功能寄存器配置[5]如表1所示。
3.3 号码采集程序
一幅图像的视频信号分为场信号和行信号。场信号为一帧图像到来的标志,行信号为图像每行像素到来的标志。号码采集程序的主要思路就是通过对视频信号中行信号﹑场信号的查询,将图像准确地存入到DSP的内存空间中。采集程序流程图如图4所示。
3.4 号码识别程序
号码识别算法主要采用传统的模板匹配法。模板为0~9单字符模板,每个大小为67×31,字符部分为1,背景部分为0,存储在DSP内部的存储空间。将待识别字符与10个相应模板进行匹配运算,找出匹配度最好一组,输出相应数值,即为待识别号码。
识别程序中,半字符的识别是该段程序的难点,编写了相应的处理算法,具体思路如下:对于分割后的单字符图像,首先要进行整字符和半字符的判别,其依据为二值化后的半字符图像,会有3~4行连续的白像素点,而整字符则没有。利用这一特点,可以进行整、半字符的判断,进而生成相应模板,完成匹配识别。例如当待识别字符为整字符时,进行匹配时所用的0~9单字符模板不变。当待识别字符为半字符时,需计算待识别字符中,上下字符分别占整体图像的比例大小,利用这一比例和0~9单字符模板,生成10个新的半字符模板,完成模板匹配识别。相应匹配过程和程序流程图分别如图6、图7所示。
4 实验结果
目前,该系统的调试样机已经完成,系统运行稳定,识别率达99%以上。利用该系统可完成多路水表读数识别、单路水表读数识别、多路水表数据传输、单路水表数据传输,水表读数显示等功能。
本文设计了一种基于DSP的多路抄表系统,可实现对多路、单路水表读数的远程自动抄录,针对水表中出现的半字符情况,给出了相应的识别方法。虽然系统现在还不够完善(如识别速度略慢),但它的设计为日后系统的优化提供了一定基础,为今后抄表方式提供了一个新的参考方向。
参考文献
[1] 王静爽,曹尔晔. 智能IC卡水表电控系统[J].电子技术应用,2002,28(5):16-17.
[2] 温贺平, 戴青云, 刘志鑫. 利用 I2C总线实现 DSP对SAA7113H的配置[J]. 仪器仪表用户,2009(11):91-92.
[3] 美国德州仪器(TI). TMS320VC5509A fixed-point digital signal processor[Z]. 2000.
[4] 陈泰红,任胜杰,魏宇.手把手教你学DSP[M]. 北京: 北京航空航天大学出版社, 2011.
[5] Philips Semiconductors. SAA7113H 9 bit video input processor[Z]. 1999.