引 言
USB总线是一种高效、快速、价格低、体积小、支撑热插拔的串行通讯接口,现在USB这一接口方法在电子产品的规划中得到了广泛应用。本文所规划的 RS485信号模拟器便是选用USB接口总线,能够很便利与PC机进行衔接,而且USB接口能够为外界供给电源。 RS485是一种平衡方法传输的串行接口标准,它的电气特性标准中有严厉规则,但它的通讯协议能够由用户自行界说。本文将具体评论USB总线信号与 RS485总线信号的彼此转化,及PC机终端应用软件对USB接口芯片的各种操作。在此基础上用户能够依据不同需求,在终端应用软件中自行规划通讯协议。
1 整体规划
信号模拟器首要包含USB接口芯片、单片机子体系、RS485与TTL电平转化子体系。它能够完结两个功用:a.信号模拟器经过应用程序软件设置串行通讯参数和数据帧结构,终究输出的信号是指定串行通讯参数和数据帧格局的RS485总线数据,能够为采集器供给标准信号源;b.在信号模拟器内部能够完结信号自反应功用,行将实践发送给采集器的数据经过信号模拟器内部回环电路回送给终端应用程序软件并终究显示出来,以验证信号模拟器发送数据是否正确。
USB接口芯片FT245R是将USB接口信号转化成8位并行信号,由MCU读取8位并行信号数据,然后MCU经过全双工的串口将读到的数据发送给 RS485电平转化电路1,这样输出的信号便是满意指定要求的标准RS485总线信号。将RS485电平转化电路1输出端信号反应给RS485电平转化电路2的输人端,这样能够把RS485电平转化成TTL电平,再经过全双工的串口进行接纳,终究将数据回送到终端应用程序软件。信号模拟器的规划整体框图如图1所示。
2 硬件电路规划
2.1 USB接口芯片FT245R
FT245R由FTDI(Future Technology Devices Inte-national Ltd.)公司推出,该芯片首要完结USB串行总线和8位并行FIFO接口之间的彼此协议转化。整个USB通讯协议悉数由芯片主动完结,开发者无须考虑底层固件的编程。该芯片使用内部集成的时钟电路进行作业,无须外部供给时钟;彻底兼容USB2.O协议。它有256字节的接纳缓冲区和128个发送缓冲区,能够进行数据的大吞吐量操作。经过8位并行数据口D[O:7]和4位读写状况/操控口RXF、TXE、RD、WR就可完结与微操控器的数据交换。
下面介绍读写FT245R FIFO操作时序要求。
(1)FT245R FIFO读操作
读操作时序如图2所示。当RXF为低,表明当时FIFO接纳缓冲区内有数据,能够履行读操作读取接纳缓冲区数据。在RD电平由高变低,FIFO操控器将接纳缓冲区中的数据输出到8位数据端口上,MCU此刻只需读取I/O口就能够将数据取到内部数据总线上来,再将RD信号拉高完结1字节数据的读取。当将 FIFO接纳缓冲区中的数据悉数取出后,RXF被拉高表明数据为空。在RXF为高时,制止从FIFO接纳缓冲区读取数据。
(2)FT245R FIFO写操作
写操作时序如图3所示。当TXE为低,表明当时FIFO发送缓冲区空,能够向发送缓冲区写入数据。在WR为高电平时,MCU将8位数据D[0:7]送到并行I/O口上,在WR信号电平由高变低时数据被写入发送缓冲区中。当TXE为高时,表明当时FIFO发送缓冲区已满或许正在写入上一个字节,此刻制止向发送缓冲区中写入任何数据。MCU向FT245R写入数据时应保证TXE为低。
2.2 单片机子体系
单片机子体系包含单片机和上电复位芯片。本规划中选用的单片机是AT89S52。 AT89S52作为体系的中央处理器担负着体系和PC主机的通讯、体系内各部件正常作业等重要使命。AT89S52这款单片机内部有看门狗电路,可防止程序堕入“圈套”或跑飞。为了使单片机上电复位牢靠,这儿选用专门的复位芯片MAX708。
2.3 RS485接口电路规划
信号经过单片机的UART接口,再经过MAX485转化即构成了RS485通讯接口。
2.4 硬件电路图
USB接口能够向外供给电源。USB接口标准规则:可供给电源电压为4.75~5.25 V,低输出功率USB端口最大的输出电流为100mA。信号模拟器所需的供电电压和电流满意USB接口电源目标,因而选用USB接口为信号模拟器供给电源。
编者注:信号模拟器的电路原理图见本刊网站www.mesnet.com.cn。
3 软件规划
软件的规划首要包含单片机程序的规划和PC机终端应用程序的规划。
3.1 单片机程序规划
单片机程序选用C言语编程,程序结构明晰,可读性和可维护性高。
3.1.1 单片机读写FT245R FIFO缓冲区程序
单片机经过P0口来读写FT245R FIFO缓冲区中的数据。P0口作为数据总线,读数据前,须向P0口全写1,这样才干正确读取数据。FT245R FIFO缓冲区读写时序要求如前文所述。MCU读写FT245R缓冲区程序如下:
3.1.2 单片机流程操控
MCU担任USB接口芯片FT245R的数据发送接纳操控,单片机串口装备及串口接纳发送使命。
整个程序的流程分为以下几个过程:
①单片机和FT245R的初始化,发动看门狗程序。
②对FT245R接纳缓冲区有无数据进行判别,若无数据,喂狗;若有数据,转向过程③。
③对帧信息类型进行判别,若为指令装备帧,则读取FT245R接纳缓冲区数据,然后对串口进行装备;若为数据帧,转向过程④。
④串口数据发送接纳选用查询方法,MCU读取FT245R接纳缓冲区的1字节,然后经过串口进行发送。
⑤判别串口发送和接纳是否结束,若完结,将接纳到的数据写入到FT245R发送缓冲区中;若未完结,喂狗,断续履行⑤。