1 概 述
在工控应用中,模拟信号采集通常需要采用隔离技术,以避免大型电气设备启合或切换过程中造成的电源和地线波动影响弱电控制系统。常见的模拟量隔离方法主要有隔离放大器、电磁隔离和光电隔离3种方式。隔离放大器,精度很好,但成本高;电磁隔离,设备体积较大,精度较差。
光电隔离技术是一种非常有效的抗干扰手段。光耦作为常见的光电隔离器件,主要用于数字量隔离传输。如果使用光耦传输模拟量,那么要求光耦的非线性度非常小,以保证输入的模拟信号的线性,绝大部分的光耦都很难达到。为了实现对模拟量的光电隔离采集,必须先进行模/数(A/D)转换,才能将转换后的数字量经由光耦传递给下一级电路。
传统方法,直接使用A/D芯片进行模/数转换,然后经光耦传输。按接口形式,A/D芯片可分并行和串行访问2种方式。并行A/D芯片采集精度越高,并行数据线占用的光耦数目越多,而且需要配以控制A/D转换操作相应的隔离信号,这种方式接线多,占用资源也多;串行A/D芯片可以节省不少光耦,但需要复杂的时序才能完成对A/D的读写操作。
本文提出一种使用集成A/D的微型单片机AT-tiny13进行模拟量隔离采集,使用单根数据线完成数据传输。模拟量隔离采集采用了简化的UART通信方式,即单工通信方式,只需要发送线TXD,无需接收线RXD。这样,单根数据线就能承担发送A/D转换值任务,接收方只要具备硬件UART或软件UART(接收),就可以轻松获取隔离模拟量值。
2 ATtiny13简介
ATtiny13具有1 KB Flash,64字节EEPROM,64字节SRAM,6个通用I/O口线,32个通用工作寄存器,1个具有比较模式的8位定时器/计数器,片内/外中断,以及4路10位ADC。
3 硬件设计
模拟量隔离采集电路如图1所示。ATtiny13有2路10位ADC可控选择,本设计中只使用了1路ADC。光耦PC817用于传输A/D转换值。CLKI代表从外部引入的时钟源。
4 软件UART
ATtiny13内部没有集成UART功能。为了弥补这一缺陷,可以使用软件控制I/O引脚模拟UART功能,按照设定的采集速率将A/D转换值经光耦隔离输出。
4.1 异步串行协议
采用UART异步串行协议通信时,数据按顺序逐位输出。接收方通过监测起始位(低电平有效)和停止位(高电平有效)来判断一帧信息的起始与结束。数据帧中还可包括若干数据位和奇偶校验位。异步串行协议的起始位与停止位必须使用,其余各位可调整位长度。异步串行协议格式如下:
本文定义帧格式为:起始位(1位),数据位(5位),无奇偶校验位,停止位(1位)。ATtiny13自带精度为10位的A/D转换器,而数据位设定为5位宽度,所以需要连续发送2次异步串行通信帧,才能将一次A/D转换值传送完整。按照高位先出的方法,前1次发送A/D转换值的高5位,后1次发送低5位。