基于多媒体处理器VG2的智能家居控制器设计
2.2 市话控制单元
市话控制单元利用住宅电话资源,串接在外线和用户的普通电话机中间,平时不影响电话正常使用。它由外围摘挂机控制电路、振铃检测电路、DTMF收发电路、语音录放电路等构成。
采用MT8888为核心,接收和发送DTMF全部16个信号。MT8888发送部分采用信号失真小、频率稳定性高的开关电容式D/A变换器,接收部分用于完成DTMF信号的接收、分离和译码,并以4位并行二进制码的方式输出;可调整双音频模式的占空比,能自动抑制拨号音和调整信号增益,带有标准的数据总线,与TTL电平兼容。采用VG2微控制器进行编程控制,可实现通过DTMF收发电路拨出电话号码进行电话通告和报警,以及接收远端的用户指令对家庭设备进行相应的操作。
选用的数字语音芯片为ISDl420,具有先进的模拟/数字语音存储技术,音质好,无需A/D转换,可录制20 s的语音信息,可分段存储信息,地址总线与单片机接口;零功率信息存储方式,断电情况下,信息可保留10年以上;易于使用,可随意改变录音内容,录放次数达10万以上。
在本系统中,ISD1420用于存储用户的地址语音信息(住宅的地理位置),以便与110联网。电话在模拟摘机后的系统提示语音和各种警情语音信息由VG2的音频引擎输出直接耦合到通话线路中。当接收到报警信号时,系统查询系统参数,决定是否报警,采用何种方式报警(可以自动拨出用户设置的报警电话,向用户提供语音报警和现场声响;也可通过电话指令启动警号和其他执行机构),并决定主机进入布防还是撤防状态。
摘挂机电路通过控制一个电流源的通断来实现。在挂机状态下,电路上的电流可以忽略不计;摘机时的电流约为30 mA,同时可以保证电路具有较小的直流阻抗(<300Ω)和较大的交流阻抗(>600Ω)。振铃时线路上为(90±15)V、(25±3)Hz、ls送、4s断的蜂音(GB3380-1982),将线路上的电压与参考电压比较,以检测出振铃信号。
当有电话呼入时,在响铃达到殴定次数后,家居控制器接管电话,给出语音提示,提供留言或输入密码进入家电控制(若3次输入密码不正确,则家居控制器将自动挂断电话)。电话线路上的拨号音、回铃音、忙音等信号是频率为(450土25)Hz的交流电源,电平为(-10±3)dBm。置MT8888为呼叫进程处理模式.根据不同信号的计数值不同进行区分,可实现拨号音、忙音、回铃音的检测。市话控制单元结构如同3所示。
2.3 数据传输及数据存储单元
采用Realtek公司的以太网接口芯片RTL80l9AS和Philips公司的USB主从控制芯片ISP1161A1,为用户提供网络接入和数据存储功能。
ISPll6lAl是Philips公司生产的一种单片通用串行总线(USB)控制器,遵循USBv2.0规范,为USB HC提供了2个下行端口,为USB DC提供1个上行端口。每一个下行端口都有自己的过流(OC)检测输入端和电源转换控制输出端;上行端口有自己的VBUS检测输入端。内建4 KB的FIFO缓存RAM供HC使用,2 462字节的FIFO缓存RAM供DC使用。在ISP116lAl作为USB主机时,根据硬件资源的分配,其数据地址是0x015000000,命令地址为0x01500002。HC的编程接口时序最小值不超过300ns,在VG2接14.318 MHz晶振、ISP1161外接12 MHz晶振时,可以满足VG2和ISP1161协调工作的时序要求。
RTL8019AS网络接口芯片具有16位数据总线和24位地址总线,具有曼彻斯特编码、冲突检测和重发的功能;可以与很少的外围电路一起完成数据的发送和接收,全双工,收发速率可同时达到10Mbps;内置16KB的SRAM用于数据收发的缓冲,支持跳线和免跳线,即插即用的上作模式。图4是数据传输及数据存储结构图。RTL8019AS工作在跳线方式下,IOS3~IOSO为低电平,设置其I/O基地址为Ox300,RTL8019AS只对地址为0x300~0x31F的信号产生响应;IRQS2~IRQS0为低电平,INT0被选中作为中断请求的输出,PLl、PLO为低电平.设置具有自动检测接口类型的功能。
3 软件设计
本文采用μC/OS-II(v2.51)嵌入式操作系统作为家居控制器的软件平台。μC/OS-II是一个占先式多任务操作系统,可固化、可裁剪,易于移植,具有良好的可靠性和稳定性;支持多达64个任务,以及信号量、消息邮箱、消息队列等多种进程问通信机制。由于没有TCP/IP和USB协议栈,因此移植了1wIP和USB HOST协议来实现网络通信和USR数据传输。
3.1 μC/OS-II在VG2上的移植
采用Cygwin作为编译平台的EISC STUDIO集成开发环境,用户可以在C程序中插入汇编语言(可扩展指令集),在移植过程中修改了OS_CPU.H和OS_CPU_C.C,4个与处理器相关的函数在OS_CPU_C.C中实现。堆栈的增长方向为向下,入口宽度为32位。初始化后数据结构依次为opt,ptos,pdATA,0x0,task,0x3000,0xe,0x7,0x6,Ox5,0x4,0x3,0x2,0xl,0x0。OSStartHighRdy()在OS_CPU_C.C中的实现实例如下(限于篇幅,其他函数不再一一列出):
多媒体处理器 VG2 嵌入式 智能家居 Linux 相关文章:
- 在手机上播放高清视频的最优化设计(04-05)
- 支持汽车电子的嵌入式软件编程接口库设计(11-29)
- 用IXP网络处理器设计的数字家庭媒体中心系统 (02-12)
- 基于DSP和CPLD的智能相机系统设计与研制(08-19)
- 基于DM642嵌入式无线视频监控硬件设计 (10-15)
- 基于AD7892SQ和CPLD的数据采集系统的设计(11-10)