传统采用51 单片机控制LED 点阵的显示屏功能相对比较单一若要使其实现功能的多样化,则往往需要花费大量的时间和精力设计复杂的外围电路,故其系统设计中使软件、硬件的设计更为复杂,增加了开发难度;增大了显示屏的体积和重量,不易于运输和安装;更重要的是产品生产成本也较为高昂。与传统LED 显示屏相比,基于PSoC 技术所开发的多功能精简尺寸型LED 点阵显示屏是利用片上系统的技术优点将各个不同功能的模块集成在同一芯片上,由于其仅仅通过添加和减少芯片上的模块就可以实现相应功能的增减,这就在很大程度上弥补了传统LED 显示屏的不足,缩短了开发周期,使产品更容易升级更新。
1 系统工作原理
1.1 PSoC 系列单片机介绍
PSoC:(Programmable System-On-Chip)可编程系统级芯片,是新一代片上系统单片机。由赛普拉斯公司的PSoC(TM)混合信号阵列是可编程的片上系统(SOC),该芯片集成了微控制器及嵌入式系统中常需扩充的模拟及数字组件。同时,也可将PSoC 视为8 位微控制器,即8 位单片机。但是和一般单片机不同的是它几乎不需要外围电路,一片PSoC 芯片就可实现一个电子系统,而且PSoC 具有比一般单片机更多的内部资源。国外专家把它的发展喻为第二次电子学革命。本系统使用的PSoC 芯片是CY8C27443,CY8C27xxx 是PSoC 混合信号阵列中在模拟量中处理最为强的一个系列[1],下表1 是28 管脚的CY8C24533和AT89C51 之间的比较。从上表中我们不难看到CY8C27443 芯片的内部资源更加丰富所以进行LED点阵系统的设计比51 单片机电路更加简单,性能更加稳定。该芯片价格很廉价而且还增加A/D 模块,D/A模块,SPI 接口模块,PWM 模块,温度传感器等都可以集成在芯片内部这样就使得外围电路大大减少,硬件电路尺寸更加精简、可靠。软件设计也更加简单方便大大节省了开发周期。CY8C27443 芯片价格相比51单片机来说虽然高出了2-3 倍但是内部有其丰富的资源可供配置所以该系统成本可以节省50%~60%左右。
表1 CY8C24533 和AT89C51 之间的比较
1.2 基于PSoC 的精简尺寸LED 点阵系统的硬件设计
基于PSoC 的多功能精简尺寸型LED 点阵系统的硬件设计如图1 所示,以PSoC 为控制器的LED 点阵系统通过TG202 烟雾传感器传感器,HM1500 湿度传感器,以及PSoC 片内集成的温度传感器。分别采集到空气中的烟雾浓度,湿度和温度情况后及时发布到LED 显示屏上显示,当出现异常情况时还可以通过蜂鸣器发出报警。采集到的数据也可以通过Si4432 无线收发模块送入PC 机进行外部环境监测。同时也可以在PC 机上输入字符后通过无线收发模块发送到LED显示屏来发布广告和通知等信息。由于PSoC 同时具有片内和片外系统时钟源。从而且显示屏扫描速度可以提高,使得产品硬件设计性能更加可靠,加之PSoC可以动态重构所以产品更加灵活多变,功能更加齐全;软件设计方面有厂商提供的API 函数可供调选,编程者无须向使用51 单片机那样在底层驱动上大费心思,这样使底层驱动程序开发周期大大缩短,从而可把精力更多的应用程序开发上,提高了开发效率。
图1 基于PSoC 的多功能精简尺寸型LED 点阵系统的硬件设计
1.2.1 TGS202 作为气体传感器
本系统采用TGS202 作为气体传感器来检测空气中含有的CO,CO2,煤气,甲烷等气体来检测环境中的烟雾,当探测到这些气体时TG202 的内阻变小,从而使得输出端电压快速上升,以达到检测火灾的功能。
通过配置PSoC 中的放大器和8 位8 通道A/D 转换模块,并且该内部采用了sinc2 滤波器是硬件电路来实现减少了CPU 的开销,并可以进行64 倍过采样,从而降低了对前端滤波器的抗混叠要求该滤波器。实现把气体传感器的模拟量转化成数字量,并且重复测试三次以上将得到的数据的平均值送到指定的单元存储。
一旦发现气体超标则PWM 模块输出口就输出1KHz的方波来驱动蜂鸣器以达到报警的目的。
1.2.2 温度传感器
PSoC 微控制器内部自带温度传感器,其绝对温度成正比即线性的输出电压。Flash Temp 应用程序接口(API)把温度传感器转换为每摄氏度一个计数。PSoC内部的温度传感器Flash Temp 为户模块提供了一项bFlashWriteBlock 函数的初略温度测量功能,它的测量范围在-40 - +80 度之间,单位是摄氏度。
1.2.3 湿度传感器
湿度是表示空气中水蒸气的含量的物理量[2],本系统采用HUMIREL 公司的HM1500 湿度送变器,HM1500 的测湿元件选用湿敏电容HS1101,当外界相对湿度变化时,感湿膜能吸附和释放水汽分子,引起其介电常数发生变化,从而使元件电容量改变。利用电容量与相对湿度的函数关系即可测量湿度[3]。
HM1500 内置放大电路,并采用了恒压源供电能够输出和相对湿度呈比例的伏级电压信号。由于温度会影响湿敏电阻的延迟性,所以根据电压和相对湿度的关系在PSoC 内部添加PGA 模块进行电路补偿的方式来对误差进行补偿,然后连接12 位A/D 转换器。
1.2.4 LED 点阵显示屏
该显示屏的实现过程如图2 所示,LED 点阵显示屏是由128 个1.9mm 的8×8 的LED 点阵块组成,每八块形成32×32 矩形点阵。采用逐行扫描方式因为扫描时间很快及人眼的视觉暂留效应,就可看到LED 点阵显示的是完整的图形或文字。行驱动使用ULN2803高电压大电流达林顿晶体管阵列集成芯片, 由于ULN2803 单脚最大输出灌电流500mA,为使驱动电平匹配所以在PSoC27443 里面配置反相器模块而且单块列驱动电路由集成电路74HC595,它构成一个8 位串入并出的移位寄存器和一个8 位输出锁存器,而且移位寄存器和输出锁存器的控制是各自独立的,通过74HC595 的级联可实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。从单片机I/O 口串行输出的点阵数据随着移位时钟的作用逐位移动到对应位置,在接收到锁存信号后,将数据并行输出至LED 的列线,最后在行驱动信号的作用下点亮一行LED 象素。
1.2.5 PSoC 与PC 机之间的通信
PSoC与PC机之间的通信如图3 所示,采用Si4432无线收发模块通信,在这里采用的是Si4432 芯片是Silicon Labs 公司推出的一款高集成度、低功耗、多频段的EzRadioPRo 系列无线收发芯片。其工作电压为1.9~3.6 V,可工作在315/433/868/915 MHz 四个频段;内部集成分集式天线、功率放大器、唤醒定时器、数字调制解调器、64 字节的发送和接收数据FIFO,以及可配置的GPIO 等。Si4432 在使用时所需的外部元件很少,仅需30MHz 的晶振、几个电容和电感就可组成一个高可靠性的收发系统,设计简单,且成本低。
Si4432 的接收灵敏度达到-117 dB,可提供极佳的链路质量,在扩大传输范围的同时将功耗降至最低;最小滤波带宽达8 kHz,具有极好的频道选择性;在240~960 MHz 频段内,不加功率放大器时的最大输出功率就可达+20dBm,设计良好时收发距离最远可达2km.
Si4432 可适用于无线数据通信、无线RS485/RS232 数据通信等诸多领域。
图3 基于PSoC 的多功能精简尺寸型LED 点阵系统和PC 机通信的硬件框图
该系统组成了一个星型网络,PC 与多个LED 显示屏间的通信属于多机通信。采用主从式结构:主机是PC 机通过查找相应的地址控制不同的从机,作为从机的PSoC 控制无线收发模块不主动发送命令或数据,由主机控制并且在一个多机系统中,只有一台主机即PC 机,各台从机之间不相互通信,即使要信息交换也必须经过主机转发。最后经过无线收发模块以数据包的形式,发送到LED 显示屏。本系统定义的数据包格式如下表2 所示:其中,前导码是0XFFAA55.
数据包在传输过程中会在每个包的前面加上可设置好长度的前导码;接收端为了识别帧的到来,需要前导码进行帧同步,从而确定收发系统之间何时发送和接收数据。同步字在前导码之后,要用设定好的同步字作为同步模式的标志码。本系统设定的同步字为2 个字节,同步字内容为0x2DD4,接收端在检测到同步字后才开始接收数据。数据载荷长度为1 字节,有效数据载荷是用户所发送的数据。CRC 校验和由内置CRC 校检。Si4432 内部集成有调制/解调、编码/解码等功能,从而前导码、同步字、数据载荷长度和CRC校验和都通过硬件自动加上去的,用户只需设定数据包的组成结构和部分结构的具体内容如前导码和同步字就可以。
表2 数据包格式
1.3 系统软件设计
利用中断分时处理的原理构成系统主程序和中断服务程序。其中主程序如图4,该主程序不断的判断相应的flag 是否为1 只要flag 等于1 就通过中断进入相应的子程序。中断子程序(Timer8 Interrupt), 作时间间断、计数器标志单元为70H、每当?t=100ms 到了就是相应的flag 置1.
1.4 主机应用程序
应用程序如图5 所示是利用Delphi 开发编制。
Delphi 是Windows 平台下简单、易学、强大、简便易用和代码执行速度快、高效的可视化开发环境(IDE),其具有所见即所得的可视化界面设计风格和面向对象的程序设计等特点,已广泛应用于各个领域。
Delphi 提供了良好的界面设计能力,在PC 串口通信方面也有很强的功能。
图5 上位机软件界面之一
1.4.1 取模
显示汉字必然要用到汉字的点阵字形信息, 也叫做汉字的字模。即汉字字形的数字化。根据汉字的显示清晰度,本应用软件多种字模供用户选择。以16×6点阵字模来举例,每一个字由16 行16 列的点阵组成显示。即国标汉字库中的每一个字均由256 点阵来表示。
我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。事实上这个显示屏不仅可显示汉字, 也可显示在256 像素范围内的任何图形。通过建立位图的方法来取模可方便显示各种特殊字符。
取模方式可分成横向,纵向取模,供用户选择。
1.4.2 Delphi 环境下串口通信实现方法
本系统选用了MSComm 控件,它通过串行端口传送和接收数据为应用程序提供基本的串口通信功能,使得程序员不必花费大量的时间去了解较为复杂的API 函数。本系统:采用的是发送二进制数,需要使用Variant变量矩阵,矩阵大小自动调节mscomm1.Settings :=‘9600,N,8,1’;//参数设置,返回波特率、奇偶校验、数据位、停止位mscomm1.SThreshold:= 0;//一次发送所有数据mscomm1.PortOpen:=true; // 打开端口mscomm1.RThreshold := 16;//设置接收多少字节并产生OnComm 事件,捕获并处理通信中发生的事件或错误。
2 结论
采用PSoC 芯片设计的多功能精简尺寸型LED 点阵系统的功能强大,硬件设计简单,软件编程只需要调用API 函数而且系统可配置可以灵活多变无需外加芯片从而大大提高了性价比。