DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 114|回复: 0
打印 上一主题 下一主题

基于MB90F462的智能家居数据采集卡设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:46:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    ????? 随着人们对居住环境的舒适度、便捷性和安全性需求的日益提高,智能家居系统应运而生。智能家居系统的核心功能是实现家用设备运行状况的实时监测和传输,主要包括:安全防盗报警;火警、水电、煤气泄漏等实时监测和自动报警;室内温度、湿度、灯光自动调节和遥控等[1]。因此采集和传输各种设备的运行信息是保证智能家居系统正常运行的关键。MB90F462是Fujitsu公司生产的一款通用16位单片机,最小指令周期仅为62.5m,适用于工业控制和高速实时数据处理等场合;同时,该芯片具有多功能定时器和多脉冲发生器,适用于交流感应电机和直流无刷电机的控制。本文利用MB90F462丰富的片内资源设计了一款智能家居系统的低速数据采集卡。
????
??? 1系统结构及功能概述
????
??? 根据智能家居系统在线设备比较多的特点和方便控制的需求,数据采集卡应具有足够的输入、输出接口和远程通信功能。基于MB90F462的数据采集卡的系统结构如图1所示。系统按功能可分为以下几个模块:8路模拟量输入;8路数字量输入;GSM短信数据传输;RS-232、RS-485通信;GPRS数据传输;实时时钟;状态指示;EEPROM数据存储。
?????
????



?????
??? 2.3 GPRS通信模块
????
??? 与传统的GSM相比,GPRS通信的特点是终端可移动、接入时间短、传输速度快、按流量计费、可接入Internet网、时时在线[2]等。GPRS网络使用TCP/IP协议栈进行组网,可以实现与Internet网络的无缝连接,但是在传输时数据格式应该符合TCP/IP协议栈的数据包格式。GPRS网络为实现点对点通讯,在数据链路层上使用PPP协议,物理层上使用串口通信。因此,实现基于GPRS的数据传输系统时需要对数据进行打包,并需要在数据链路层上实现PPP协议[3]。基于TCP/IP专用模块的GPRS远程数据传输的流程如图3所示。?
?????
???


????
?????
??? 2.4实时时钟模块
????
??? 为了合理有效地管理各个用户的数据,特别是一些报警数据,应该记录其出现的实时时间。该数据采集卡采用了美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能;DS1302与CPU同步串行通讯,接口只需三根线:/RST、I/O、SCLK;一次可以读写1个字节数据或31个字节的字符串;共有七个数据寄存器,即秒、分钟、小时、日期、月份、周和年份寄存器;命令字的地址从80H~8DH,奇数为读,偶数为写;一个时钟周期由下降沿开始,上升沿结束;写入数据时,在时钟的上升沿期间数据必须保持有效,读出数据时,在时钟的下降沿期间数据有效;如果,RST输入低电平,中止所有的数据传输并且I/O呈高阻态;数据输入/输出的时序是首先写入一个字节的命令字节(读或写),后面紧跟8个时钟周期读出/写入一个字节的数据。
????
??? 虽然DS1302的功耗很小,但是如果要长时间保证时钟正常,最好选用小型充电电池或0.1F以上的超级电容作为备用电源。如果断电时间较短,可以用漏电较小的普通电解电容器代替。DS1302在第一次加电后必须进行初始化操作,之后即可按正常方法调整时间。
????
??? 此外,系统还配置了RS-232、RS-485接口和EEPROM数据存储器,方便与其他设备的连接,并实现掉电数据保护功能。
????
??? 3 Accemic MDE调试
????
??? Accemic MDE是目前市场上能够调试Fujitsu 16LX系列不带仿真器的单片机的首选工具,其监控内核与应用程序是并行运行的,所以了解其监控内核的工作方式非常重要。使用Accemic MDE进行调试应严格按照如下步骤进行:
????
??? (1)在启动Accemic之前按以下步骤连接硬件(勿接电源)
????
??? (a)将MB90F462置为编程状态,即MD0、MD1、MD2、P00、P01分别设为ON(=0)、OFF(=1)、OFF、ON、ON。
????
??? (b)用串行电缆连接目标板的Bootloader-UART和PC机的COM端口,(对于MB90460系列,UART0为Bootloader-UART)。
????
??? (c)给目标板加电。
????
??? (2)启动Accemic调试环境
????
??? (a)打开preference│systerm菜单,设置CPU类型、封装形式、工作时钟、倍频数、通讯波特率、复位线路和COM端口号等。
????
??? (b)按下"Download Monitor"按钮导入监控内核;
????
??? (c)使目标系统处于复位状态,将单片机切换到工作
????
??? 状态,即MD0、MD1、MD2、P00、P01分别设为OFF、OFF、ON、X、X。
????
??? (d)退出复位状态,此时可以通过监控内核访问目标系统。
????
??? (e)按下"Connect"按钮开始连接调试。
????
??? (3)Aecemic MDE调试注意事项
????
??? (a)调试前将位于Accemic MDE的安装目录C:\programs\AccemicMDE\include下的文件"monitor.asm"添加到用户工程中;如果要使用目标信息功能,要在应用程序中包含"monitor.h"文件(与monitor.asm在同一目录下)。
????
??? (b)如果Bootloader-UART未使用外部时钟,不要使用改变PLL时钟寄存器的功能。PLL时钟可以通过"start.asm"中的设置来修正,确保其中CLOCKSPEED的设置为NOCLOCK。
????
??? (c)调试时不能改变Bootloader-UART中断级别及Bootloader-UART的寄存器设置,注意在文件"vectors.c"中不要覆盖Bootloader-UART的中断级别。
????
??? (d)如果要使用看门狗定时器,需要开启Accemic MDE的看门狗定时器自动更新功能,即在程序中调用acc_WatchdogEnable()函数。
????
??? (e)调试中为了让Monitor能够进入中断服务程序中的断点,必须满足两个条件:一是在程序中允许中断,即调用_EI()函数;二是中断服务程序的中断级别高于7(因为Bootloader-UART的中断级别是7)。
????
??? (f)MB90F462带有两个UART,其中UART0是BootloaderUart,用于在线调试和烧录程序,也可以和用户程序复用。复用时需要调用Accemic MDE中定义的函数acc_KernelUART(1),参数默认值为1,表示UART0用作正常的用户程序通信;参数默认值为0,表示UART0用作调试接口,用户程序中没有用到UART0时不需要调用此函数。
????
??? 综上所述,该数据采集卡提供8路模拟量输入及8路开关量输入接口,具备两路RS-232接口,支持RS-485、RS-232、3.3V、5V等多种输入电平,可以实现现场数据采集和远程传输,远程通讯及传输方式有GPRS和SMS;而且可以对现场设备实行远程开关量控制。该数据采集卡传输与协议转换透明化,使用方便、可靠,而且配备系统配置和维护接口,方便现场维护,可普遍应用于远程监控、远程仪表数据读取等场合。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-21 16:59 , 耗时 0.079754 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表