DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

[接口电路] CAN总线在家庭智能化控制系统中的研究与应用

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

                    ???? 0 引言
  家庭智能控制系统的主要功能集中在家庭安全报警、电话或电脑远程控制、红外遥控、自动抄表控制、灯光和湿度控制等方面。根据智能终端设备传输数据和功能的不同可以把它分成两类子网,一类是传输数据以数据量小、速率低的家庭自动化控制设备;另一类是传输多媒体信息、(视频、音频信号),信号量大、速率快,如视频会议、音频点播等。家庭智能终端设备可以采用总线结构组建成有线子网和无线子网,因各设备分布在家中不同的地方,对于组建成有线子网布线比较复杂,但是如果采用PLC与CAN总线构建成网络,将降低成本。
  CAN(Controller Area Network,控制器局域网)是德国Bosch公司在20世纪80年代初为汽车检测控制而开发的一种串行数据通讯协议,它是一种多主机总线,通讯介质可以是双绞线、同轴电缆或光导纤维,通讯速率为1Mb/s。CAN总线具有卓越的性能,极高的可靠性和独特的设计,广泛应用于工业自动化、交通工具、医疗仪器以及建筑、环境控制等众多部门。
  1 家庭智能化控制系统的组成
  家庭智能化控制系统是电视、洗衣机、空调及水表、电表、燃气表等设备的指挥通信和信息管理的核心,主要功能是与远程控制系统进行数传通信,接收各种控制口令,完成对相应设备的实时控制。
  控制系统中凡具有嵌入式微处理器或微计算机的单体均通过CAN总线相互连接。组成分布式局部网,实现数据交换和信息资源共享。这种设计具有以下优点:减少了通信端口、连接电缆;抗干扰能力强;配置灵活、系统扩展和升级方便;调试简单,检修方便。
  由CAN总线组成的家庭智能化控制系统原理如图1所示。




  用单片机AT89C52作为微处理器;用SJAl000作为CAN微控制器,SJAl000中集成了CAN协议的物理层和数据链路层功能,可被动局面对通信数据的帧处理;高速光电隔离用6N137实现,其作用是防止串入信号干扰;MAX232用来完成RS 232电平到微控制器接口芯片TTL电平的转换。具体的硬件接口电路参见SJAl000的资料,但有以下几点需要注意:
  (1)CAN总线两端接有一个120 Ω的电阻,其作用是匹配总线阻抗,提高数据通信的抗干扰性及可靠性。但实际上只需保证CAN网络中“CAN_H”和“CAN_L”之间的跨接电阻为60 Ω即可。
  (2)SJAl000的20引脚RXl在不使用时可接地,配合CDR.6的置位可使总线长度大大增加。
  (3)引脚TX0,TXl的接法决定了串行输出的电平。具体关系可参考输出控制寄存器OCR的设置。
  (4)AT82C250的RS引脚与地间接有1个斜率电阻。电阻大小可根据总线通信速度作适当调整,一般在16~140 kΩ之间。
  (5)MAX232外围需要4个电解电容C1,C2,C3,C4,这些电容也是内部电源转换所需电容,其取值均为1μF/25 V,宜选用钽电容并且位置应用量靠近芯片,电源Vcc和地之间要接1个0.1μF的去耦电容。
  在微处理控制下,RS 232和CAN进行数据交换时,采用串口接收和CAN中断方式可提高工作效率。SJAl000的初始化在复位模式下才可以进行,主要包括工作方式的设置、时钟分频和验收滤波寄存器的设置、波特率参数的设置以及中断允许寄存器的设置等。其主程序流程图如图3所示。




  数据在两个串口之间的传输时,常常会出现丢失数据的现象。由于单片机缓冲区有限,如接收数据时缓冲区已满,那么此时继续发送来的数据就会丢失。而流控制能有效地解决该问题,当接收端数据处理不过来时,流控制系统就会发出“不再接收”的信号,而使发送端停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据丢失。常用的两种流控制是硬件流控制(包括RTS/CTS,DTR/CTS等)和软件流控制XON/XOFF(继续/停止),下面仅就硬件流控制RTS/CTS加以说明。
  采用硬件进行流控制时,串口终端RTS,CTS接到单片机的I/O口,通过置I/O口为1或0来接收和发出起停信号。数据终端设备(如计算机)使用RTS来起始单片机发出的数据流,而单片机则用CTS来起动和暂停来自计算机的数据流。实现这种硬件握手方式时,在编程时根据接收端缓冲区的大小设置一个高位标志和一个低位标志,当缓冲区内数据量达到高位时,就在接收端将CTS线置低(送逻辑0),而当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高为止。RTS则用来标明接收设备有没有准备好接收数据。
  以下是CAN接收子程序:




  3 结语
  通过对家庭智能控制系统的分析,采用PLC与CAN总线构建成控制性局域网,通过仿真系统的测试,该总线完全能完成对家庭智能终端设备实行控制,但要使它控制的稳定性和实时性得到进一步提高,还需在此基础上作更加深入的研究。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 23:39 , 耗时 0.092444 秒, 18 个查询请求 , Gzip 开启.

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

桂公网安备 45031202000115号

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

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

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

QQ:28000622;Email:libyoufer@sina.com

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

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