设计干货精选:AVR单片机工业控制方案合集
示。
该模块是系统的核心,当红外感应系统感应到人体,会送出中断信号,单片机得到信号后执行中断,通过串口通信读取气体浓度,然后到语音芯片寻址,并控制语音模块把气体浓度报告出来。除了基本的外围电路,核心控制模块外主要应用了中断、串行通信和基本的输入、输出功能。
本系统中上位机通过串口实现与单片机通信,然后由单片机进行处理,单片机接受红外信号后,控制语音芯片工作,播放相应的语音信息。可选的单片机较多,如AVR、AT89C51等。采用单独的控制芯片的好处是减少主控芯片(CPLD)的工作量,提高系统的性能。我们选用了AVR单片机。AVR是基于RISC(精简指令集计算机)结构的单片机,简称AVR单片机,该系列单片机在吸收PIC及8051单片机优点的基础上,进行了重大改进。与普通的51系列单片机相比,AVR单片机有很多优点。首先给人最直观的就是具有JTAG边界扫描、仿真、编程功能,不会造成以往仿真通过而脱机不行的现象。
1.2红外感应模块的设计
该模块相对简单,核心用了红外传感器,只把信号进行了简单处理,送给单片机的中断即可,见图3。
1.3数据读取方式的设计
对数据的读取有两种方法:一种是直接与硬件电路结合,16位二进制数据读取过来,进行整理还原;另一种是通过串口通信,把已经由上位机整理好的数据,通过RS-232协议读取过来。显然,较第1种方法,通过串口的方式避免了对数据重复整理,编程更简单。对整个项目而言,设计更合理,缩短了开发周期。
本系统采用的是串行数据通信方式,接口为RS-232串口,实验证明这种通信方式简单易行,符合本系统要求。本系统采用的是半双工配置,它要求下位机和主机控制器双方都具有独立的发送和接收能力。
接收/发送时钟用来控制通信设备接收/发送字符数据速度,该时钟信号通常由微机内部的时钟电路产生。接收数据时,接收器在接收时钟的上升沿对接收数据采样,进行数据位检测。发送数据时,发送器在发送时钟的下降沿将移位寄存器的数据串行移位输出。
接收/发送时钟频率与波特率有如下关系:
式中:Fe为接收/发送时钟频率;n为频率系数,n=1,16,64;vc为收/发波特率。
接收/发送时钟的周期Tc与发送的数据位宽Td之间的关系是:
式中:n=1,16,64。
若取n=16,那么异步传送接收数据实现同步的过程如下:接收器在每一个接收时钟的上升沿采样接收数据线,当发现接收数据线出现低电平时就认为是起始位的开始,以后若在连续的8个时钟周期(因n=16,故Td=16Tc)内检测到接收数据线仍保持为低电平,则确定它为起始位(不是干扰信号)。通过这种方法,不仅能够排除接收线上的噪声干扰,识别假起始位,而且能够相当精确地确定起始位的中间点,从而提供一个准确的时间基准。从这个基准算起,每隔 16Tc采样一次数据线,作为输入数据。一般来说,从接收数据线上检测到一个下降沿开始,若其低电平能保持nTc/2(半位时间),则确定为起始位,其后每间隔nTc时间(一个数据位时间)在每个数据位的中间点采样。
2通信软件设计
系统通信软件由下位机、主机控制器通信软件和上位机监控软件3部分组成。下位机通信软件功能主要是接收主机控制器发送过来的信号,针对各下位机地址发送应答信号,再根据主机控制器发来的控制信号做出相应的反应,随后发送主机控制器所需数据。其通信功能使用了单片机的串行中断和查询收发状态标志位的方法实现。下位机平时对各监控点进行数据采集并定时存储,当有串行中断时执行串行中断服务程序,判别是否为本机的地址信息,地址信息与本机地址相符时,转为接收控制命令,并执行相应的操作;地址信息与本站地址不符时则退出中断。下位机通信流程图如图4所示。
主机控制器的通信软件实现功能主要包括呼叫各从机(下位机),并向各从机发送查询控制命令。其工作过程为:控制器发送需呼叫的从机的地址,然后等待接收从机的应答信号,若应答信号正确即发送控制命令,若应答信号不正确则重新发送需呼叫的地址,并等待接收应答信号,接收到应答信号后接收下位机发送的数据,存储在相对应的数据存储区并在LCD(液晶显示器)显示屏中显示出来。对同一从机多次呼叫而在规定时间内无应答信号或应答信号不正确,则提示错误信息。图5为主机控制器通信流程图。
上位机监控软件由Visual C++编写,具有良好的可视效果,功能包括数据查询、数据存储、串口通信设置、视频监控、图表显示(单机、多机)等。上位机的数据来自主机控制器,其通过RS-232串口网络
- 下一代Flash存储器在工业控制领域技术与应用(02-05)
- 应对电机设计,安森美有何发展趋势及创新方案?(03-26)
- 以太网标准与驱动系统设计(04-20)
- 飞思卡尔最新工业机器人解决方案特点及优点分析(07-22)
- MCP8063三相正弦无传感器无刷电机工业控制驱动方案(07-04)
- 多种工业触摸屏的原理及特性解析(07-18)