USB接口的RS485信号模拟器设计
- 格式:doc
- 大小:9.58 KB
- 文档页数:3
通讯接口RS485的电磁兼容设计方案-----本方案由电磁兼容设计平台(EDP)软件自动生成一.原理图设计方案1. RS485接口6KV防雷电路设计方案图1 RS485接口防雷电路接口电路设计概述:RS485用于设备与计算机或其它设备之间通讯,在产品应用中其走线多与电源、功率信号等混合在一起,存在EMC隐患。
本方案从EMC原理上,进行了相关的抑制干扰和抗敏感度的设计,从设计层次解决EMC 问题。
电路EMC设计说明:(1)电路滤波设计要点:L1为共模电感,共模电感能够对衰减共模干扰,对单板内部的干扰以及外部的干扰都能抑制,能提高产品的抗干扰能力,同时也能减小通过429信号线对外的辐射,共模电感阻抗选择范围为120Ω/100MHz ~2200Ω/100MHz,典型值选取1000Ω/100MHz;C1、C2为滤波电容,给干扰提供低阻抗的回流路径,能有效减小对外的共模电流以同时对外界干扰能够滤波;电容容值选取范围为22PF~1000pF,典型值选取100pF;若信号线对金属外壳有绝缘耐压要求,那么差分线对地的两个滤波电容需要考虑耐压;当电路上有多个节点时要考虑降低或去掉滤波电容的值。
C3为接口地和数字地之间的跨接电容,典型取值为1000pF,C3容值可根据测试情况进行调整;(2)电路防雷设计要点:为了达到IEC61000-4-5或GB17626.5标准,共模6KV,差摸2KV的防雷测试要求,D4为三端气体放电管组成第一级防护电路,用于抑制线路上的共模以及差模浪涌干扰,防止干扰通过信号线影响下一级电路;气体放电管标称电压VBRW要求大于13V,峰值电流IPP要求大于等于143A;峰值功率WPP要求大于等于1859W;PTC1、PTC2为热敏电阻组成第二级防护电路,典型取值为10Ω/2W;为保证气体放电管能顺利的导通,泄放大能量必须增加此电阻进行分压,确保大部分能量通过气体放电管走掉;D1~D3为TSS管(半导体放电管)组成第三级防护电路,TSS管标称电压VBRW要求大于8V,峰值电流IPP要求大于等于143A;峰值功率WPP要求大于等于1144W;接口电路设计备注:如果设备为金属外壳,同时单板可以独立的划分出接口地,那么金属外壳与接口地直接电气连接,且单板地与接口地通过1000pF电容相连;如果设备为非金属外壳,那么接口地PGND与单板数字地GND直接电气连接。
RS485串行通信电路设计RS485是一种常见的串行通信协议,广泛应用于工业自动化、仪器仪表、电力系统等领域。
RS485通信具有高可靠性、抗干扰能力强、通信距离远等特点,因此在一些需要长距离、高可靠性的通信场景中得到广泛应用。
本文将针对RS485串行通信电路的设计进行详细介绍。
首先,我们需要了解RS485通信的基本原理。
RS485采用差分信号传输,即发送端将逻辑0和逻辑1分别表示为低电平和高电平,接收端通过比较接收到的两个信号的电平差值来判断传输的是0还是1、差分信号传输具有较强的抗干扰能力,可以有效地抵抗电磁干扰和串扰。
除了收发芯片,RS485通信电路还需要考虑其他一些因素。
首先是电源电压的选择,一般RS485通信电路的电源电压为5V,但也可以根据实际需求选择其他电压。
其次是控制信号的设计,通常需要使用一个使能信号来控制发送和接收的开关。
此外,还要考虑阻抗匹配和信号线的布线,通常使用120欧姆电阻进行阻抗匹配,并尽量避免信号线与电源线、高电压线等干扰源的靠近。
在实际设计中,我们可以参考以下步骤进行RS485串行通信电路的设计:1.确定通信距离和通信速率:根据实际需求确定通信的最远距离和传输速率,这将影响到电路设计的一些参数。
2.选择收发芯片:根据通信距离和速率的要求,选择合适的收发芯片,并根据其规格书进行电路连接和布线。
3.设计电源电路:确定电源电压和电流,并设计相应的电源电路,通常需要增加滤波电容来提高电源的稳定性。
4.控制信号设计:根据收发芯片的要求设计使能信号和其他控制信号的接口电路。
5.阻抗匹配和信号线布线:根据通信距离和速率要求,选择合适的阻抗匹配电阻,并良好地布线,以减少干扰和串扰。
6.电路测试和优化:完成电路设计后,进行测试和优化,检查通信稳定性和可靠性,并根据需要进行一些调整和改进。
总之,RS485串行通信电路设计是一个相对复杂的过程,需要考虑多个因素的综合。
通过仔细设计和优化,可以实现稳定、可靠的串行通信。
RS-485($14.5000)标准在工业控制、电力通讯、智能仪表等领域中使用广泛。
但是,在工业控制等现场环境中,情况复杂,常会有电气噪声干扰传输线路;在多系统互联时,不同系统的地之间会存在电位差,形成接地环路,会干扰整个系统,严重时会造成系统的灾难性损毁;还可能存在损坏设备或危害人员的潜在电流浪涌等高电压或大电流。
因此,对RS-485($14.5000)接口的隔离是非常有必要的。
隔离RS-485($14.5000)接口电路我们经常采用的485接口隔离电路是利用三个光耦隔离收发及控制信号,加上485收发器共需要4片IC,且采用光耦隔离需要限流及输出上拉电阻,必要时还会使用三极管驱动。
设计电路繁琐,耗费时间长,如果没有之前使用光耦的经验,那么在选用光耦限流及输出上拉电阻方面会耗费很多不必要的时间;且光耦的输出信号上升时间较长,在与数字I/O端口相接时,需另加施密特整形才能保证信号的波形符合标准,如在FPGA、DSP等系统中的应用。
ADM2483($3.6480)是内部集成了磁隔离通道和485收发器的芯片,内部集成的磁隔离通道原理与光耦不同,在输入输出端分别有编码解码电路和施密特整形电路,确保了输出波形的质量。
且磁隔离功耗仅为光耦的1/10,传输延时为ns级,从直流到高速信号的传输都具有超越光耦的性能优势。
内部集成的低功耗485收发器,信号传输速率可达500Kbps,后端总线可支持挂载256个节点。
具有真失效保护、电源监控以及热关断功能。
要实现隔离RS-485($14.5000)接口的电路设计只需在ADM2483($3.6480)的电源与地之间接一个104的去耦电容即可。
当然,DC-DC隔离电源是必不可少的。
其电路连接如下图:信号自收发电路信号自收发电路我们采用74HC14($0.0625)芯片,利用它的施密特波形翻转性能来控制RE、DE引脚,以实现信号的自收发。
其电路连接如下图:如图所示,MCU的发送信号经过施密特触发器反向后输给DE和RE脚,发送数据引脚TxD 接地。
rs485电磁兼容设计方案一、硬件方面。
1. 线路布局。
首先呢,RS485的信号线得像两个乖宝宝一样,和那些容易产生干扰的线路(比如电源线、大电流信号线)保持距离。
就好比你在公交车上,要和那些爱推搡的大汉保持点儿间隔,不然容易被挤到。
一般来说,信号线和电源线之间的距离最好能有个几厘米,如果空间允许的话。
在PCB板上,RS485的走线要尽可能短且直。
不要让它像蜿蜒的小蛇一样扭来扭去,因为走线越长,就越容易受到外界电磁场的干扰。
这就像你走路,走直线肯定比绕弯路更快到达目的地,而且还不容易迷路(被干扰)。
对于RS485的差分信号线(A和B),要让它们紧紧挨在一起,就像一对好兄弟。
这样做的好处是,它们可以相互抵消外界的共模干扰。
这就好比两个人一起抵御外来的麻烦,总比一个人单打独斗要强得多。
2. 终端匹配。
RS485网络的两端一定要加上合适的终端匹配电阻。
这个终端匹配电阻就像是一个小守门员,它可以防止信号在传输线末端反射回来,造成信号的混乱。
如果没有这个小守门员,信号就像在一个没有尽头的迷宫里乱撞,最后出来的时候就变得乱七八糟了。
一般来说,终端匹配电阻的值要根据传输线的特性阻抗来选择,通常是120Ω左右。
而且这个终端匹配电阻的精度也很重要,可不能太马虎。
如果精度太差,就像守门员的手套太大或者太小,不能很好地完成任务。
所以呢,尽量选择精度在1%以内的电阻。
3. 隔离措施。
为了防止设备之间的电气干扰通过RS485线路传播,要加上隔离器件。
这就好比在两个房子之间砌一堵墙,这样一边房子里的噪音(电气干扰)就不会轻易传到另一边去了。
可以使用光耦或者磁耦来实现隔离。
光耦隔离是个不错的选择,它就像一个用光信号传递信息的小信使。
输入侧的电信号通过发光二极管变成光信号,然后在输出侧再把光信号还原成电信号。
这样一来,两边的电气系统就被有效地隔离开了。
不过在选择光耦的时候,要注意它的速度、隔离电压等参数,要确保它能满足RS485通信的要求。
rs485接口设计要点和调试方法一、RS485接口设计要点:1.基本电气参数:RS485接口是一种基于差分传输的串行通信接口,能够实现远距离和高速传输。
在设计RS485接口时,需要考虑以下基本电气参数:a.差分电平:RS485采用差分信号传输,所以需要在接口电路中设置一个电平变换器,将逻辑电平转换为差分电平。
通常差分电平为正负两个电平,例如:+5V和-5V。
b.带宽:RS485接口的带宽决定了其传输速率和信号质量。
在设计时需要根据实际需求选择合适的带宽。
c.驱动能力:RS485接口通常需要驱动一定数量的设备,因此需要考虑驱动电流和输出功率等参数,以确保信号传输稳定和可靠。
2.线路特性:a.线路长度:RS485接口支持较长的通信距离,但实际可靠距离受到多种因素的影响,如传输速率、电缆类型和环境干扰等。
因此,在设计RS485接口时需要考虑通信距离的限制,并根据需求选择合适的电缆类型和衰减补偿方法。
b.终端电阻:RS485通信线路需要在两端分别加上120欧姆的终端电阻,以确保信号有效的传输和防止信号反射。
c.屏蔽和抗干扰措施:RS485接口在电气环境中可能会受到较强的干扰,如电磁辐射和电磁感应等。
为了提高信号质量和抗干扰能力,可以采用屏蔽电缆、引入滤波电路和设置适当的接地措施。
3.通信协议:a.数据格式:RS485接口支持多种数据格式,包括:ASCII码、二进制码和Modbus等。
在设计接口时需要根据实际应用场景选择合适的数据格式。
b.通信速率:RS485接口支持多种通信速率,通常为几百kbps至几Mbps。
在设计接口时,需要根据实际需求选择合适的通信速率,并确保接口电路的传输带宽足够以支持所选择的速率。
c.错误检测和纠正:RS485接口在数据传输过程中可能会出现错误,例如位错误、校验错误和帧错误等。
为了提高通信的可靠性,可以采用差错检测和纠正机制,如CRC校验等。
二、RS485接口调试方法:1.硬件调试:a.接线检查:首先需要检查接线是否正确连接,包括数据传输线、终端电阻和供电电路等。
USB接口的RS485信号模拟器设计③对帧信息类型举行推断,若为指令配置帧,则读取FT245R接收缓冲区数据,然后对串口举行配置;若为数据帧,转向步骤④。
④串口数据发送接收采纳查询方式,MCU读取FT245R接收缓冲区的1字节,然后通过串口举行发送。
⑤推断串口发送和接收是否完毕,若完成,将接收到的数据写入到FT245R发送缓冲区中;若未完成,喂狗,断续执行⑤。
⑥重复执行②~⑤,直到读出接收缓冲区里的全部数据。
3.2 PC机终端应用程序软件设计PC机终端应用软件程序的主要目的是实现对USB接口芯片FT245R的接口控制和读写操作,提供友好的人机界面来设置串行通信参数、数据帧格式、帧发送方式等。
计算机端有关USB通信的开发不需要了解USB 底层驱动,FTDI公司已经以动态链接库的形式封装好了面对功能应用的API函数,开发者可以在多种高级语言中调用,功能强大且灵便便利。
FTDI公司为FT245R芯片提供了2种驱动程序:VCP驱动和D2XX驱动。
用法VCP驱动程序,数据传输速率可达300 kb/s;用法D2XX驱动程序,数据传输速率可达1 Mb/s。
下面分离介绍基于以上2种驱动的应用软件程序设计。
3.2.1 基于VCP驱动的应用程序设计在PC机上安装一个由FTDI公司提供的虚拟串行口VCP(Virtual COM Port)驱动程序,它是将USB接口芯片虚拟成操作系统的一个串口通信口,对这一虚拟的串行口的操作等同于对该USB接口设备的操作。
应用程序通过调用 Win32 COMM控件的API函数来完成对芯片的读/写操作。
VCP驱动由2部分组成:FTDIBUS和FTSER2K。
FTDIBUS完成2个功能:控制虚拟串口的生成,以及与USB接口芯片举行通信。
FTSER2K完成对串口的各种操作。
应用软件程序设计可以采纳成熟的串行通信控件MSComm来完成对虚拟串口的各种操作。
MSComm控件很好地封装了Windows API的串口通信函数,屏蔽了繁琐的通信详情,只需用法控件提供的接口即可。
本科学生毕业论文论文题目:RS485总线通信系统的设计与实现学院:年级:专业:姓名:学号:指导教师:摘要无论是工业控制还是信号测试领域,实现不同通讯协议的数据融合都有着迫切需要。
但是目前市场中存在的协议转换器只能满足两种协议之间的转换,如RS485转RS232,USB转RS485等,但是经常存在着多种数据总线并存的情况,因此研制多种总线协议转换的设备有着比较大的实际意义。
除此之外,目前接口标准的RS485总线通信协议不统一,需设计一个高效稳定的通信协议。
基于以上原因,本论文提出一种基于高速RS485的多总线通信系统。
整个系统包含多个RS485节点,各个节点包含的通讯接口包括RS232,RS485和USB,从而实现这三类总线的通讯协议的转换。
设计并实现了一种适用于微机和单片机之间串行通信的通信协议,采用RS485简便,通信可靠性高总线标准,可用于工业测控和控制现场。
实验结果表明,该通信协议是切实可行的,达到了预期的设计要求。
关键词RS485总线;主从式;多机通信;通信协议AbstractWhether in the field of industrial control or signal test, the achievement of data fusion which is based on different communication protocol is urgent needed. However, in the current market, protocol converter can only achieve conversion between two protocols, such as RS485 to RS232, USB to RS485 and so on. Cases of coexistence data bus, it has great practical significance to develop an equipment for protocol conversion among different buses.Based on the reasons above, a high-speed RS485-based multi-bus communication system is presented in this paper. The entire system which is used to realize the three categories of bus communication protocol conversion consists of some RS485 nodes, each node contains the communication interfaces including RS232, RS485 and USB. In the practical application, the number of nodes can be changed as required to form system, for achievement of data fusion between a variety of bus communication protocol.Key wordsRS485 bus; Serial Bus; Protocol Conversion; Communication protocol目录摘要 ..................................................................... I Abstract................................................................ II 第一章绪论 .. (1)1.1 研究背景及意义 (1)1.2 RS485总线通信系统研究现状 (2)第二章 RS485介绍 (4)2.1 RS485标准 (4)2.2 MAX485芯片介绍 (4)2.3 RS485总线组网方式 (5)2.4 RS485方式构成的多机通信原理 (5)第三章系统协议及硬件设计 (7)3.1 RS485通信协议设计 (7)3.1.1 物理层设计 (7)3.1.2 数据链路层设计 (8)3.1.3 应用层设计 (8)3.1.4 通信协议 (8)3.2 系统硬件设计 (10)3.2.1 PC与RS485总线的接口 (10)3.2.2 RS485方式构成的多机通信 (10)3.2.3 单片机与PC机串行通信系统构成 (11)第四章系统的软件实现 (12)4.1 上下位机的关系 (13)4.2 下位机通信软件的设计 (14)4.3 上位机通信软件的设计 (16)4.3.1 通信协议设计 (16)4.3.2 多机传输 (17)4.3.3 差错控制 (18)4.4 程序设计 (19)第五章系统问题解决措施 (20)5.1 总线隔离 (20)5.2 失效保护 (20)5.3 电磁干扰问题 (20)结论 (22)参考文献 (23)致 (24)第一章绪论所谓通信,不仅仅要实现数据的传输,更应该体现准确性,也称可靠性传输,最好具有一定的纠错和检错能力。
RS485总线标准规定了总线接口的电气特性标准,具体如下:
1. 数字信号采用差分传输方式,能够有效减少噪声信号的干扰。
2. 电压标准:正电平在+2V~+6V之间,表示一个逻辑状态。
负电平在-2V~-6V之间,则表示另一个逻辑状态。
3. 阻抗标准:接收器的输入电阻RIN≥12kΩ,驱动器能输出±7V的共模电压。
4. 电容标准:输入端的电容≤50pF。
5. 终端电阻:在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V。
6. 接收灵敏度:接收器的输入灵敏度为200mV,即(V+)-(V-)≥0.2V表示信号“0”,(V+)-(V-)≤-0.2V表示信号“1”。
因为RS485具有远距离、多节点(32个)以及传输线成本低的特性,使得RS485成为工业应用中数据传输的首选标准。
如需更多信息,建议咨询专业技术人员获取帮助。
TLX CDDRV20M. The driver installation procedure is either described in the software documentation or supplied in the CD Driver.Presentation: The TSXCUSB485 converter is a multifunction communication device that converts serial signals, via a USB connection, into RS485 signals. It provides the link between a PC equipped with a type A USB port and various other devices.When using this interface with XBT, refer to the quick reference guide provided with this equipment.Remark: Each converter has an unique serial number that enables the driver to manage up to 4 interfaces. So when a converter TSX CUSB485 is replaced by another one, the driver detects a new serial number and resets itself automatically.Diese typischen Anwendungen verwenden die standardmäßigen Schneider Uni-Telway/Modbus-Tgestellt werden oder auf der Treiber-CD TLX CDDRV20M enthalten sind. Das Installationsverfahren für den Treiber ist entweder in der Softwaredokumen-tation oder auf der T reiber-CD beschreiben.Beschreibung: Der Konverter des Typs TSXCUSB485 ist ein Multifunktions-Kommunikationsgerät, das serielle Signale über eine USB-Verbindung in RS485-Signale umwandelt. Er stellt die Verbindung zwischen einem mit einem USB-Port des Typs A ausgestattetem PC und verschiedenen anderen Geräten bereit. Bei Verwendung dieser Schnittstelle mit dem XBT ziehen Sie bitte die mit diesem Gerät mitgelieferte Kurzanleitung zu Rate.Hinweis: Jeder Konverter verfügt über eine eindeutige Seriennummer, die dem Treiber die Verwaltung von bis zu 4 Schnittstellen ermöglicht. Wenn ein Konverter des Typs TSX CUSB485 durch einen anderen Konverter ersetzt wird, erkennt der Treiber eine neue Seriennummer und setzt sich selbst automatisch zurück.Die verschiedenen Funktionen des seriellen Modus sind von der Position des Polarisierung: Dieser Konverter kann eine LeitungspolarisierungCes applications types utilisent les drivers Schneider Uni-Telway/Modbus fournis par des logiciels (Unity, PL7-Pro, ...) ou par le CD de drivers TLX CDDRV20M. La procédure d'installation des drivers est indiquée dans la documentation de ces lociciels ou celle fournie dans le CD driver.Présentation : Le convertisseur TSXCUSB485 est un produit de communication multifonction qui convertit les signaux série, via une connexion USB, en signaux RS485. Il fournit une liaison entre un PC équipé d’un port USB type A et différents équipements.Pour l’utilisation de cette interface avec XBT, se référer à l’instruction de service fournie avec cet équipement.Remarque : Chaque convertisseur dispose d’un numéro de série unique permettant au driver de gérer jusqu’à 4 interfaces. De ce fait, lorsqu’un convertisseur TSX CUSB485 est remplacé par un autre, le driver détecte un nouveau numéro de série et se réinitialise automatiquement.Ne pas utiliser le convertisseur TSXEsas aplicaciones típicas utilizan los controladores Schneider Uni-Telway/Modbus estándar proporcionados por el software (Unity, PL7-Pro...) o por el con-trolador de CD TLX CDDRV20M. El procedimiento de instalación del controlador se describe en la documentación del software o se suministra en el con-trolador de CD.Presentación: El convertidor TSXCUSB485 es un dispositivo de comunicación multifunción que convierte señales serie, a través de una conexión USB, en señales RS485. Proporciona la conexión entre un PC equipado con un puerto USB de tipo A y varios dispositivos distintos.Al utilizar esta interfaz con XBT, consulte la guía de referencia rápida que se incluye con este equipo.Nota: Cada convertidor tiene un único número de serie que activa el controlador para gestionar hasta cuatro interfaces. Así que cuando se sustituye un convertidor TSX CUSB485 por otro, el controlador detecta un nuevo número de serie y se restablece automáticamente.Las distintas funciones del modo serie se definen según la posición del Polarización: Este convertidor puede proporcionar unaNo utilice el convertidor TSX CUSB485 con dispositivos del rango Altivar y Altistart.Per le applicazioni tipiche che utilizzano i drive standard Schneider Uni-TTLX CDDRV20M. La procedura di installazione del driver è descritta nella documentazione software o fornita con il CD Driver.Presentazione: il convertitore TSXTSXCUSB485 è un dispositivo di comunicazione multifunzione che converte i segnali seriali, via una connessione USB, in segnali RS485. Esso permette di collegare un PC predisposto con una porta di tipo USB A con vari altri dispositivi.Quando si utilizza l'interfaccia con l'XBT, riferirsi alla guida di riferimento rapida fornita con questa apparecchiatura.Nota: ogni convertitore ha un numero di serie univoco che abilita il driver a gestire fino a 4 interfacce. In questo modo quando un convertitoreTSX CUSB485 viene sostituito da un altro, il driver rileva un nuovo numero di serie e reimposta automaticamente i propri parametri.Le varie funzioni della modalità seriale sono definite in base alla posizione Polarizzazione: questo convertitore può fornire unaNon usare il convertitore TSX CUSB485 con le apparecchiature della serie Altivar e Altistart.这些典型的应用程序使用软件装过程可能在软件文档中进行说明,也可能在 CD 驱动程序中提供。
微机USB和RS485通讯接口的软硬件设计
莫登耀;廖肸昕;张阿卜
【期刊名称】《厦门大学学报:自然科学版》
【年(卷),期】2005(044)B06
【摘要】文章使用最新的器件CP2101桥接器作为核心,加上UART和RS485的转换芯片MAX1483和一些附加电路IC实现了USB和RS485转换器的硬件电路,介绍了作为USB和UART桥接器的新器件CP2101的功能和用法,设计了在微机平台上与转换器进行通讯的软件.
【总页数】4页(P273-276)
【作者】莫登耀;廖肸昕;张阿卜
【作者单位】厦门大学自动化系,福建厦门361005
【正文语种】中文
【中图分类】TP273
【相关文献】
1.基于F206DSP的USB接口软硬件的设计 [J], 张磊;肖行竹
2.微机保护装置中USB通讯接口的设计 [J], 曹喜玲;杨旭
3.基于TMS320C32的USB2.0接口的软硬件设计 [J], 刘利民;赵建明
4.微机USB和RS485通讯接口的软硬件设计 [J], 莫登耀;廖肸昕;张阿卜
5.基于USB接口的微机与单片机通信系统设计 [J], 王海军
因版权原因,仅展示原文概要,查看原文内容请购买。
USB接口的RS485信号模拟器设计引言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电平,再通过全双工的串口进行接收,最终将数据回送到终端应用程序软件。
信号模拟器的设计总体框图。
2 硬件电路设计2.1 USB接口芯片FT245RFT245R由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读操作读操作时序。
当RXF 为低,表示当前FIFO接收缓冲区内有数据,可以执行读操作读取接收缓冲区数据。
在RD电平由高变低,FIFO控制器将接收缓冲区中的数据输出到8位数据端口上,MCU此时只需读取I/O口就可以将数据取到内部数据总线上来,再将RD信号拉高完成1字节数据的读取。
当将 FIFO接收缓冲区中的数据全部取出后,RXF被拉高表示数据为空。
在RXF为高时,禁止从FIFO接收缓冲区读取数据。
(2)FT245R FIFO写操作写操作时序。
当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接口为信号模拟器提供电源。
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发送缓冲区中;若未完成,喂狗,断续执行⑤。
⑥重复执行②~⑤,直到读出接收缓冲区里的所有数据。
3.2 PC机终端应用程序软件设计 PC机终端应用软件程序的主要目的是实现对USB接口芯片FT245R的接口控制和读写操作,提供友好的人机界面来设置串行通信参数、数据帧格式、帧发送方式等。
计算机端有关USB通信的开发不需要了解USB底层驱动,FTDI公司已经以动态链接库的形式封装好了面向功能应用的API函数,开发者可以在多种高级语言中调用,功能强大且灵活方便。
FTDI公司为FT245R芯片提供了2种驱动程序:VCP驱动和D2XX驱动。
使用VCP驱动程序,数据传输速率可达300 kb/s;使用D2XX驱动程序,数据传输速率可达1 Mb/s。
下面分别介绍基于以上2种驱动的应用软件程序设计。
3.2.1 基于VCP驱动的应用程序设计在PC机上安装一个由FTDI公司提供的虚拟串行口VCP(Virtual COM Port)驱动程序,它是将USB接口芯片虚拟成操作系统的一个串口通信口,对这一虚拟的串行口的操作等同于对该USB 接口设备的操作。
应用程序通过调用 Win32 COMM控件的API函数来完成对芯片的读/写操作。
VCP驱动由2部分组成:FTDIBUS和FTSER2K。
FTDIBUS完成2个功能:控制虚拟串口的生成,以及与USB接口芯片进行通信。
FTSER2K完成对串口的各种操作。
应用软件程序设计可以采用成熟的串行通信控件MSComm来完成对虚拟串口的各种操作。
MSComm控件很好地封装了Windows API的串口通信函数,屏蔽了繁琐的通信细节,只需使用控件提供的接口即可。
3.2.2 基于D2XX驱动的应用程序设计为了获得更快的数据传输速率,本文选择D2XX驱动来进行应用软件程序开发。
D2XX驱动包括FTD2XX.DLL、FT2XX.SYS、USB Stack 三部分。
应用软件程序通过动态链接库文件FTD2XX.DLL可访问驱动程序FTD2XX.SYS的编程接口,进而可以对FT245R芯片进行各种操作。
FTD2XX.DLL提供了丰富的接口函数来对FT245R进行各种操作,主要函数如下: FT_Open 用于打开USB接口设备 FT_Read 从USB接口芯片中读取数据 FT_Write 向USB接口芯片里写入数据 FT_Close 关闭USB 接口设备 FT_SetTimeouts 设置读写FT245R缓冲区的超时时间设计中使用MFC作为计算机终端应用软件的开发平台。
程序设计要点如下:①新建一个工程文件,加载FTD2XX.H 文件到工程中,在每一个CPP文件中都要加入头文件FTD2XX.H。
在FTD2XX.H文件中可以查看动态链接库(FTD2XX.DLL)提供的接口函数。
在新建的类中,用到哪个接口函数,需在该类的头文件中对接口函数进行声明。
FTDI公司提供D2XX驱动的安装程序,进行安装后即可在Win-dow32下生成FTD2XX.DLL文件。
②应用程序须首先加载动态链接库文件Ftd2xx.dll,之后才能调用动态链接库的接口函数,对USB接口芯片进行各种操作。
加载库命令即LoadLibrary("Ftd2xx.dll")。
③在打开USB接口设备之前,须先关闭USB接口设备。
即先执行FT_Close函数,然后执行FT_Open函数。
USB接口设备打开后,就可以对芯片缓冲区进行读/写操作。
在完成终端应用软件对FR245R芯片的各种操作后,用户可根据不同需求,自行设计通信协议,包括串行通信参数、数据帧格式、数据帧发送方式等。
终端应用软件界面。
结语本文主要讨论了基于USB接口的RS485信号模拟器的软硬件设计。
整个信号模拟器已经完成调试,经工程实际测试,终端应用程序运行可靠,信号模拟器数据发送正确无误。
这种基于USB接口芯片FT245R的软硬件设计,可应用于其他基于USB接口的信号模拟器和数据采集领域,具有广泛的工程应用前景。