专利名称:可编程通信转换器的制作方法
技术领域:
本发明为一种可编程通信转换器,用于将基于TIA/EIA-485标准的信号转换为符合USB编码规则的NRZI信号,并通过USB总线传入计算机,属于计算机应用技术领域。
背景技术:
在数据采集、仪器和控制工程等方面,使用USB接口与PC机交换信息有着传统串行口不可比拟的优点。USB的星形拓扑结构允许一个USB接口以热插拔的方式接入多台USB设备,其信息包式的通信规范具有可靠性高、速度快的特点,并且具有3ms内不使用就进入休眠态的规则,因此大大降低了功耗。但由于USB采用的是基带数字信号,所以传输距离受到了限制,在不加中继的情况下一般不超过5米。而以RS-422标准为基础的EIA RS-485具有远距离、多节点和传输线成本低廉等优点而成为工业应用中数据传输的首选标准。因此将USB与RS-485相结合而成的数据转换设备具有广泛的应用领域。目前常用的USB-485转换器一般都是只做单纯的数据转换,能满足一定的使用要求,但都存在功能单一,不够灵活,不能与用户的原有系统紧密结合等缺点。
发明内容
本发明的目的是研制一种可编程通信转换器,它不仅可以实现一般USB-485转换器所具有的单纯数据转换的功能,而且可以利用提供的API函数对转换器中的MCU源代码进行扩展,以便与以前的系统进行无缝连接,同时还可以在转换器的基础上进行二次开发,用户只需做少量修改,添加自己的通信协议就可以快速研发具有自己知识产权的USB-485设备,达到一个平台多种用途的目的。
本发明的目的是通过以下方式实现的利用PHILIPS公司的高性价比的USB接口芯片PDIUSBD12和广泛使用的51系列的单片机AT89C52以及外部32K RAM和EIA-485接口芯片MAX184、PS1480B等构成硬件系统。通过编写单片机程序和USB驱动程序以及上层应用程序,实现计算机和USB-485设备的通信。由于单片机中的固件程序所占用的内存空间较少,加之外扩了RAM,因此提供给用户的资源比较丰富,非常适合与原有系统进行无缝连接。同时由于提供了WINDOWS操作系统所需的USB驱动程序以及使用详细说明,因此也非常容易进行上层应用程序的编写。为了提高系统的抗干扰性,本发明在PDIUSBD12芯片与上行接口之间添加了USB口瞬变电压抑制器SN75240,并在上行插口的SHIELD引脚插口接入多个分布在电路板各处的0.01uF的电容,可以起到有效的EMI电磁干扰抑制作用。为了防止共模干扰通过EIA-485接口部分进入系统,本发明采用了两种USB通信方案,对于共模干扰加大的情况,可采用光电隔离数据收发器PS1480B作为485接收/发送芯片;对于共模干扰较小,周围环境较简单的情况下可采用价格低廉的MAX184作为485接口芯片同时利用隔离二极管来阻断共模干扰进入系统。通过试验与测试,本发明具有很强的抗干扰能力和高度的稳定性,连续传输数据不出错超过240小时。
本发明主要由五部分组成USB接口电路、存储器扩展电路、RS485接口电路、单片机固件程序设计、USB驱动程序设计。
1、USB接口电路这部分电路主要分为PDIUSBD12与AT89C52连接电路和USB接口抗干扰电路。
在PDIUSBD12与AT89C52连接电路中PDIUSBD12与AT89C52通过8位数据/地址线并行连接,利用中断方式通知单片机AT89C52,当PDIUSBD12接收到上位机发来的数据后产生中断信号,通知单片机数据的到来;当上位机正确从PDIUSBD12中读走数据后仍产生中断信号通知单片机上行数据发送成功。具体连接如下PDIUSBD12与AT89C52的P0口相连,PDIUSBD12采用多路地址数据工作方式,在这种工作方式下PDIUSBD12的ALE引脚(30脚)与单片机AT89C52的30脚相连,通过实用MOVX指令可以与D12接口,对D12的操作就像对RAM操作一样。这时可忽略A0的输入,D12的ALE的下降沿是锁存地址信息。奇数地址的输出为命令;偶数地址的输出为数据。本发明所采用的两个地址为0002H和0003H,为了防止PDIUSBD12占用太多的地址浪费资源,本发明在对PDIUSBD12进行读取的时候将PDIUSBD12的片选信号线(/D12CS)通过单片机控制置为低电平;对PDIUSBD12读取完毕时将片选信号线置为高电平使其与总线隔离开,经过试验证明,才方法可行有效。
由于USB接口速度相对较高,同时允许热插拔,因此要求USB设备要具有较强的抗干扰能力。为了加强系统的稳定性和抗干扰能力本发明在USB连接接口处采用了USB口瞬变电压抑制器SN75240,同时在USB连接口外壳与地之间增添了保护电容防止雷击等现象烧毁设备。经过试验发现,USB信号线上串联的电感值在具有不同型号主板的电脑上工作情况不一致,本发明采用了经过多种主板测试后的最优电感值L1、L2,取得了很好的效果。
2、存储器扩展电路为了提供更多的可用资源,本发明在单片机外围扩展了数据存储器,所用存储器芯片为62256,大小为32K。采用74LS373作为锁存芯片,所占地址范围为8000H-0FFFFH。所用芯片均为常用芯片,容易购买和使用。
3、RS485接口电路在利用485总线的通信系统中,485接口电路的设计很大程度地决定着系统的稳定性。为了使用不同的场合,本发明采用了两种USB通信方案,对于共模干扰较大的情况,可采用光电隔离数据收发器PS1480B作为485接收/发送芯片;对于共模干扰较小,周围环境较简单的情况下可采用价格低廉的MAX184作为485接口芯片同时利用隔离二极管来阻断共模干扰进入系统。
4、单片机固件程序设计本发明中的单片机固件程序由C语言和汇编语言编写,485通信程序由汇编语言编写,USB枚举程序(用于连接USB设备和计算机)和中断服务程序由C语言编写。整个固件程序包括主循环程序、中断服务程序、标准设备请求处理程序、PDIUSBD12接口命令程序、硬件抽象层程序和RS485通信程序。
5、驱动程序设计而在开发USB设备时,设备驱动程序的设计是其中一项重要的技术环节,它直接影响整个设备系统的性能。本发明采用的WDM驱动程序,主要由四个模块组成初始化模块、I/O模块、即插即用管理模块和电源管理模块。另外,还有一个.INF文件用于驱动程序的安装。
Windows操作系统中的I/O管理器把每一个设备对用户程序都抽象成文件,用户程序可通过调用文件操作API函数就实现与驱动程序中某个设备的通信。用户程序发送的请求由I/O管理器转换为具有不同主功能代码的IRP(I/O请求包)发送给功能驱动程序。功能驱动程序接收该IRP后,在回调例程中根据IRP中包含的具体操作代码,构造相应的URB(USB请求块),把它放到一个新的IRP中,并把这个新的IRP传递给USB总线驱动程序。USB总线驱动程序根据IRP中所包含的URB执行相应操作,再将操作结果通过IRP返还给功能驱动程序。功能驱动程序接收此IRP,将操作结果通过IRP返还I/O管理器。最后,I/O管理器将此IRP中的操作结果返回给应用程序。其处理流程如下图所示。
本发明的有益效果由于采用上述方案,本发明可实现USB-485的高速转换,且无需外接电源,直接使用USB口电源,工作稳定。完全符合TIA/EIA-485标准,支持全双工数据传输,具有较强的抗电磁干扰特性,最远传输距离卡1200米以上,可支持256个节点,波特率可选范围为225-57600b/s(选用11.0592M晶振),同时带有用于电源、收、发指示灯。支持Windows98/me和Windows2000/XP。留有方便的API函数,用户可直接调用以加快产品的研发。
图1是本发明的电路逻辑框图;图2是本发明的第一个实施例结构框图;图3是本发明的第二个实施例结构框图;图4为本发明USB接口芯片PDIUSBD12电路图;图5为本发明单片机AT89C52电路图;图6为本发明USB接口抗干扰电路;图7为本发明存储器扩展电路;图8A-1为本发明RS485接口电路485通信接收电路;图8A-2为本发明RS485接口电路485通信发送电路;图8B为本发明RS485接口电路另一种485通信发送电路;图9单片机固件程序模块结构框图。
具体实施例方式
如图1、图2、图3、图4、图5、图6、图7、图8A-1、图8A-2、图8B、图9所示的一种可编程通信转换器。
在图1所示的电路逻辑框图中,①为RS-485接口电路,本发明采用了两套方案,用于不同的环境。MAX184+隔离二极管+TVS(瞬态电压抑制器)用于一般工业环境下;PS1480用于较恶劣的工业环境中。②为51系列单片机,本发明选用应用最为广泛的51系列单片机之一AT89C52,其内部具有8K ROM,256字节RAM,可以外扩程序存储器和数据存储器,具有三个定时/计数器和一个全双工串行口,最大可接24M晶振,同时具有6个中断源。②通过串行口与①相连来实现和下位机的通信。③为USB接口电路,本发明采用PHILIPS公司的高性价比的PDIUSBD12作为USB接口芯片,通过它实现单片机和PC机之间的通信。PDIUSBD12完全符合USB1.1规范,其内部集成了320字节的多配置FIFO存储器可与任何微控制器/处理器有高速(2MB/s)的并行接口。其内部具有8KV静电保护,能够在-40~+85℃工业级工作。④为外部RAM,当要处理的数据比较大的时候,可以通过外部RAM对数据进行存取,方便于系统扩展,易于用户进行二次开发。
在图2所示实施例中,利用USB-485转换器将车间控制中心服务器下达的命令,通过485通信线传到各个数控机床,实现数控机床的无人控制。用户可以通过制定具有自己特色的通信协议,添加进本发明提供的源程序中的通信模块中就可以实现此系统。当然也可以不加修改地利用本发明提供的通信协议进行设计,但如果用户需要在转换器中对自己的数据进行一些处理和分析,就需要设计自己的通信协议。
在图3所示的另一个实施例中,小区服务器通过USB-485转换器采集到通过485通信线组成的网络中各个监控点的数据,监控点的数据包括温度,适度,气体等等的数据,然后通过Internet网络传给远端的监控中心,实现小区的远程监控,非常的方便。
权利要求
1.一种可编程通信转换器,其包含USB转换器,该USB转换器设置有USB接口电路、存储器扩展电路、RS接口电路、单片机固件程序和USB驱动程序,其特征在于所述的USB接口电路在PDIUSBD12与AT89C52连接电路中PDIUSBD12与AT89C52通过8位数据/地址线并行连接,利用中断方式通知单片机AT89C52,其具体连接为PDIUSBD12与AT89C52的P0口相连,PDIUSBD12采用多路地址数据工作方式,在这种工作方式下PDIUSBD12的ALE引脚与单片机AT89C52的30脚相连,通过实用MOVX指令可以与D12接口。
2.如权利要求1所述的可编程通信转换器,其特征在于在PDIUSBD12芯片与上行接口之间添加了USB口瞬变电压抑制器SN75240,并在上行插口的SHIELD引脚插口接入多个分布在电路板各处的0.01uF的电容,可以起到有效的EMI电磁干扰抑制作用。
3.如权利要求1所述的可编程通信转换器,其特征在于存储器扩展电路在单片机外围扩展了数据存储器,所用存储器芯片为62256,大小为32K,采用74LS373作为锁存芯片,所占地址范围为8000H-0FFFFH。
4.如权利要求1所述的可编程通信转换器,其特征在于RS接口电路采用光电隔离数据收发器PS1480B作为接收/发送芯片。
5.如权利要求1所述的可编程通信转换器,其特征在于RS接口电路采用MAX184作为接口芯片同时利用隔离二极管来阻断共模干扰进入系统。
6.如权利要求1所述的可编程通信转换器,其特征在于所述USB转换器为USB485转换器。
7.如权利要求1所述的可编程通信转换器,其特征在于所述ALE引脚为30脚。
8.如权利要求1所述的可编程通信转换器,其特征在于该可编程通信转换器设置有统一的软件接口和驱动程序接口。
全文摘要
本发明公开一种可编程通信转换器,具体而言提供一种用于将基于TIA/EIA-485标准的信号转换为符合USB编码规则的NRZI信号,并通过USB总线传入计算机的可编程USB-485通信转换器,其包含USB转换器,该USB转换器设置有USB接口电路、存储器扩展电路、RS接口电路、单片机固件程序和USB驱动程序,其特征在于所述的USB接口电路在PDIUSBD12与AT89C52连接电路中PDIUSBD12与AT89C52通过8位数据/地址线并行连接,利用中断方式通知单片机AT89C52,它不仅可以实现一般USB-485转换器所具有的单纯数据转换的功能,而且可以利用提供的API函数对转换器中的MCU源代码进行扩展,以便与以前的系统进行无缝连接。
文档编号G06F3/00GK1808343SQ20051010334
公开日2006年7月26日 申请日期2005年9月20日 优先权日2005年9月20日
发明者马义德, 张在峰, 徐光柱 申请人:马义德, 张在峰, 徐光柱