基于CPLD的RS422接口电路设计.doc
基于 CPLD 的 R S422接口电路设计孙晓辉(中国空空导弹研究院 , 河南 洛阳 471009 )摘 要 : R S422总线目前已大量用于长距离线路通讯 。阐述了一种利用 CPLD 作为主控单元所构成的 R S422接口转换电路 ,该接口电路所有运算功能均采用硬件逻辑实现 ,具有响应速度快 、可靠 性高 、通用性和灵活性强的特点 。关键词 : R S422; CPLD; 接口电路 ; 硬件逻辑中图分类号 : TP336文献标识码 : A文章编号 : 16712654X ( 2007 ) 0520059204引言R S422 采用平衡的差分数据传输方式进行数据传 输 , 具有抗干扰能力强 、通讯速率高 、通讯距离远 、可 以与多台从机通讯的特点 。它的最大数据传输速率可 以达到 10M b it / s ,最大传送距离为 300m ,如果降低传 送速率 ,传送距离可以达到 1200m。所以 ,该总线在数 据采集 、监控管理及集散控制系统的主从式多机通讯 系统中得到普遍应用 。本文所介绍的 R S422 接 口 转换 电路 主 要完 成了 数据格式转换 、通讯 数 据识 别 、存储 以及 数 据发 送功 能 。文中详细阐述了接口电路的基本工作原理 ,硬件 电路设计和 CPLD 代码设计流程 ,并给出了一部分初 始化代码 。图 1 R S422接口转换电路原理框图接口电路硬件设计22. 1 隔离电路为了提高整个系统的抗干扰能力 , 本电路采用电 气隔离设计 ,包括电源隔离和信号隔离 ,以保证 R S422 通讯数据与接口电路信号电气上的完全隔离 。电源隔离主要通过 DC - DC 隔离实现 ,用于进行 整个系统与接口电路电源隔离 、接口电路内 R S422 芯片 、光耦芯片与后续处理电路间的电源隔离 。 信号隔离通 过 光耦 实现 , 光 耦 芯片 选用 HCPL -2631 ,转换率 10M ,可以满足接口串行数据转换的速度 要求 。2. 2R S422 通信接口芯片R S422 通信接口芯片的选择需要考虑芯片的通信 速率是否满足要求 , 在本接口电路设计中选择 MAX2IM 公司的 MAX490 芯 片 。MAX490 是 一 种 低 功 耗 的 全双工高速 R S422 通信接口芯片 ,通信速度可以达到2. 5M bp s,并可同时允许 32 路同样的 R S422 通信接口芯片接在同一总线上 ,这为多机通信提供了方便 。1 硬件电路基本构成图 1所示为 RS422接口转换电路的基本原理框图 。 整个接口电路可以分为 4个部分 。其中 ,第一部分为隔 离电路 ,包括 DC - DC 电源和高速光耦隔离 ,用于提高 接口电路在长距离数据传输时的抗干扰能力 ;第二部分为 R S422电 平转 换芯 片 , 可 将 R422 电平 信 号 转 换 成 TTL 电平 ;第三部分为 UART收发器 ,用于将 TTL 串行 数据转换成并行数据输出 ;第四部分为由 CPLD、双端口 存储器所构成的主控制电路 ,可实现对 UAR T收发器的 初始化及控制 、有效数据的判别及存储 、并行数据的输出 。该电路系统在电气特性上实现了电源 、输入输出信 号的隔离 ,保证了系统内部运行的独立性 。收稿日期 : 2007 204 204修订日期 : 2007 208 215基金项目 :山西省自然科学基金项目资助 ( 20041051 )作者简介 :孙晓辉 ( 1977 2) ,女 ,河南洛阳人 ,硕士 ,研究方向为测试计量技术及仪器 。·60·航 空 计 算 技 术第 37卷第 5期2. 3 UAR T总线收发器本接口电路所选用的异步总线收发器为图 2 为逻辑控制电路的基本原理图 。 CPLD 控制着双端口存储器的两套数据 、地址总线 ,左侧总线 LD 7: 0 、LA 10: 0 用于读取 UAR T芯片 I82C52 转换的8位并行数据 ,进行数据识别 ,并将正确的通讯数据写 入存储器 。右侧总线 RD 7: 0 、RA 10: 0 用于在接收到数据发送请求脉冲时从存储器内读取数据数据 , 数据读回 CPLD 后可进行适当处理 , 包括压缩 、解码 、 加密等 。数据处理后从总线 Dou t 7: 0 发出 , 并据根 据数据发送请求脉冲进行输出 ,在同一个脉冲内数据 在总线上保持不变 ,以供外部设备读取 。此外 , CPLD 还控制着 I82C52 的复位 、读写 、双端口存储器的读写等控制逻辑 。I82C52 ,该芯片可同时实现发送 /接收数据和波特率发生器的功能 。最高可支持 1M 波特率异步串行数据通信 , 波 特率可以通过片外输入时钟源和内部寄存器进行灵活设置 。同时该芯片还具有可屏蔽中断 、面向总线接口 、Modem 接口 、低功耗的特点 。I82C52在使用前需对芯片 各控 制寄 存 器进 行初 始化 ,寄存器初始化需在芯片复位后进行 。上电复位 时 ,芯片复位端引脚 ( R TS) 保持至少两个时钟周期的 高电平可完成对内部电路进行初始化 ,此时芯片内部寄存器保持空闲状态 ,便可对相应的控制寄存器写入 控制字 ,下面为所有对 I82C52 的寄存器操作列表I82C5寄存器操作列表对应操作/CS0A1A0/W R/RD写发送缓冲寄存器 ( TBR )读接收缓冲寄存器 ( RBR )写 UAR T控制寄存器 (UCR )读 UAR T状态寄存器 (U SR ) 写 Modem 控制寄存器 (MCR ) 读 Modem 控制寄存器 (MCR ) 写波特率选择寄存器 (BR SR )00000000000111001100101010101010101图 2 逻辑控制电路基本原理图 0 1 1 1 0 读 Modem 状态寄存器 (M SR ) 图中 I82C52为 5V 供电芯片 , 为防止将 CPLD 的I/O 损坏 ,在 CPLD 与 I82C52 之间接入电平转换芯片74LVC4245。由于读 I82C52 数 据 和 写 双 端 口 存 储 器 使用一套数据总线 ,所以在 CPLD 与双端口左侧之间接入芯片 74LV T245 ,用于进行总线隔离 ,防止数据读写冲突 。接口电路总线收发器 I82C52 及 CPLD 控制单元由 同一时钟信号源进行控制 ,通信波特率可以根据时钟由 I82C52内部控制寄存器 BRSR 进行灵活设置 ,同一时钟源可保证各逻辑信号同时触发 ,实现数据同时转换 、判别及写入存储器 、数据发送等 ,提高了系统的可靠性 。 双端口存储 器 ID T71V 321 容量 2 K字 节 , 用于 存放一部分通讯数据 ,可确保本接口电路同时进行数据 接收和数据发送 ,而不会导致冲突 。并且可允许发送数据请求脉冲的频率在一定范围内变化 ,降低了对外部设备的读时钟要求 , 接 口电 路 所有 逻辑 均 由 CPLD 内部硬件代码实现 ,可根据需要进行相应的逻辑更改 , 电路使用灵活 ,相对于其它由软件实现的接口电路而言可靠性较高 。2. 5 接口电路基本工作流程上电初 始 化 状 态 , CPLD 完 成 内 部 复 位 , 并 输 出UAR T芯 片 I8 2 C 5 2的 复 位 信 号 VR ST, 保 证 该 芯 片 正对 I82C52的初始化只需按照上表操作 ,将控制字写入相应的控制寄存器即可 。初始化时需写入的控制 寄存器通常有 3 个 : UCR 寄存器 、BR SR 寄存器 、MCR 寄存器 。由 于 MCR 寄 存 器 控 制 中 断 允 许 位 、Modem 控制输出和接收使能位 ,所以通常最后写入 。具体每 个寄存器对应位的含义可查阅相关资料 ,这里不再赘述 ,文章只在软件部分对在逻辑进行描述 。2. 4 逻辑控制电路CPLD 中初始化I82C52 的本接口的逻辑控制电路主要由 CPLD 和双端口存储器构成 , CPLD 选用 X ilinx公司的 Coo lR unne r系列低 功耗器件 XCR3256XL ,确保了系统在满足低功耗的前提下 可 以 获 得 较 高 的 性 能 。双 端 口 存 器 选 用ID T71V321 , 3. 3V 供电 ,存储容量 2 K ×8 b it。在此接口 电路中 CPLD 主 要 完 成 上 电 时 对 UAR T 芯 片 的 初 始 化 ,正常工作时数据识别 、存储和数据发送时的逻辑控制功能 ,双端口存储器主要用于存放接收到的正常通 讯数据 ,在外部设备发送数据请求脉冲到来后 ,在规定 的延时内将通讯数据发到数据总线 。由于控制电路器件均使用 3. 3V 供 电 , 所以 需将DC - DC的 5V 隔离电压输出转换为 3. 3V 电压输出 ,转换芯片选用 MAX1658。2007年 9月孙晓辉 :基于 CPLD 的 R S422接口电路设计·61·常复位 。接着 CPLD 控制 I82C52 的写信号 /W R , A 1、A0控 制 信 号 R EG2、R EG1 以 及 8 位 数 据 输 出 完 成 I82C52 三个控制寄存器 UCR , BR SR , MCR 的设置 ,初 始化完成程序进入正常工作状态 。I82C52初始化完成后 ,对经电平转换和光耦隔离后的串行数据流 进行 格 式转 换 。当 串行 数 据转 换完 成 ,输出并行数据符合控制寄存器 UCR 设置的数据格 式时 (本接口电路设置成 8 位数据格式 ) ,输出转换完 成信号 R EAD Y通知 CPLD 接收数据 。CPLD 响应转 换 完 成 信 号 R EAD Y, 控 制 读 信 号 / RD , A1、A 0控制信号 R EG2、R EG1的状态 ,读入并行 8位数据 ,根据通讯协议中所规定的数据格式判别是否 为有效数据 , 并控制双端口 存储 器左 侧 通道 的 /LCS / LW R 引脚写入有效数据 。在发送数据流程中 , CPLD 接收到发送数据 请求 脉冲 CL KOU T。根据写数据流程相应的标志识别存储器内是否存储有用的通讯数据 。如果没有存储有用数 据 , CPLD 通过总线接口发送数据 0 x0 FF,表示存储器 内未存有通 讯数 据 。如 果识 别 有存 储数 据 , CPLD 控 制双端口右侧的 /RCS、/RRD 引脚读回存储的数据 ,数 据经过处理后发到数据总线供外部设备读取 。发送通讯数据的处理在 CPLD 内部进行 , 可以根 据需要对发送数据进行一定的压缩 、解码 、加密处理 , 以满足不同应用场合条件下对通讯数据的要求 。图 3数据接收及存储软件流程3 接口电路软件设计接口电路软件采用 VHDL 语言描述 ,数据接收 、存 储以及数据发送使用两个不同的进程实现 ,这样可以保证两个进程并行执行 ,保证数据可以同时接收 、存储 和发送 。每个进 程 程序 状态 间 的跳 转通 过 状态 机实 现 ,状态机的跳转与输入时钟的上升沿同步 ,确保接口 电路的同步工作 。3. 1 数据接收及存储流程图 3为数据接收流程 ,程序状态跳转由输入时钟 上升沿触发 。程序根据软件协议中规定的通信数据帧 头 、帧尾 、校验和 ,每帧数据个数等格式进行数据识别 , 写入双端口存储器 ,同时将数据状态传递给发送数据 流程 。3. 2 数据发送流程图 4为数据发送流程 ,数据发送由发送数据请求 脉冲触发 , CPLD 接收到该脉冲信号后准备数据发送 , 存储器中存储数据状态从数据接收流程读入 。程序状 态跳转与输入时钟上升沿同步 。发送数据经过 CPLD内部处理后在适当的延时内发到数据总线 ,时间延时 跟程序中所做的数据处理和输入时钟有关 。图 4 数据发送软件流程3. 3I82C52 初始化I82C52的初始化在数据接收 、存储流程内完成设 置 ,初始化的工作全部由 CPLD 完成 。初始化部分程序用 VHDL 语言如下 :e lsif frqeven t and frq = 1 thenca se st is when 0 = > R st < = 1 ; D ir < = 0 ;DD ir < = 0 ;st : = 1;·62·航 空 计 算 技 术第 37卷第 5期- - 输出 MCR 寄存器控制字when 1 = >st : = 2; when 2 = > R st < = 0 ;end if;st : = 7;when 7 = >- - I82C52复位完成R eg1 < = 0 ;R eg2 < = 1 ; W r < = 0 ;if DD irld < =e lseld < =end if;= 0 then" 00111100 " ;- - 控制字写入 MCR 寄存器- 初始化完成 ,等待转换完成信号st : = 8;-( o the rs = > Z) ;- - 输出 UCR 寄存器控制字4 结论本接口电路具有电路设计简单 ,可靠性高 、功耗低 的特点 ,可满足特定环境下的使用要求 。接口电路内 部实现了电气特性隔离 ,很好地解决了数据的干扰问题 ,可实现 R S422通讯数据同时接收 、发送 ,数据通讯 的实时性得到了保证 。电路设计灵活 ,可根据通讯协 议所规定的数据格式要求实现接口电路逻辑的在线编 程 。实践测试证 明该 接 口电 路具 有 高稳 定性 和可 靠 性 ,可用于 R S422 长距离 通讯 中 , 目 前该 接口 转换 电路已在产品中得到了很好的应用 。st : = 3;when 3 = >R denR eg1R eg2< =< =< =0 ;1 ;0 ;- 控制字写入 UCR 寄存器W r < = 0 ;st : = 4;when 4 = > W r < = 1 ;-if DD irld < =e lseld < =end if;= 0 then" 11111100 " ;参考文献 :( o the rs = > Z) ;- - 输出 BR SR 寄存器控制字 1 吴秀清 . 微型计算机原理与接口技术 M . 合肥 :中国科学技术大学出版社 , 1999 , 02.B &B E lec tron ic s M fg Co Inc. R S2422 and R S2485 App lica2tion No te EB . www. in te rsil. com , 1997 , 10.M axim In te rgra ted P roduc ts Inc. Low2Powe r, Slew2R a te2L im ited R S2485 /R S2422 Tran sce ive rs EB . www. m axim- ic. com. cn, 2003.M axim In te rgra ted P roduc ts Inc. 350mA , 16. 5V Inp u t, Low2D ropou t L inea r R egu la to rs EB . www. m axim 2ic. com. cn ,2003.In te rsil Co. CMO S Se ria l Con tro lle r In te rface 82C52 EB . www. in te rsil. com , 1997, 03.X ilinx Inc. XCR3256XL 256 M ac roce ll CPLD EB . www.xilinx. com , 2004, 02, 13. 2 st : = 5;when 5 = >R eg1 < = 1 ; R eg2 < = 1 ; W r < = 0 ;st : = 6;when 6 = > W r < = 1 ; 3 - 控制字写入 BR SR 寄存器- 4 5 if DD ir = 0 thenld < = " 00110000 " ;e lseld < = ( o the rs = > Z) ; 6 D esignof RS422 In terface C ircu it Ba sed on CPLDSUN X ia o2hu i( C h ina A irborne M issile A cadem y, L uoyang 471009, C h ina )A b stra c t: R S422 B u s is la rge ly app lied to long - d istance comm un ica tion a t the p re sen t tim e. Th is a rtic le in troduce s a R S422 in te rface c ircu it tha t compo sed of CPLD a s a p rim a ry con tro lle r. A ll op e ra tiona l func tion s of the c ircu it a re ac2 comp lished by ha rdwa re logic. The c ircu it ha s cha rac te ristic s of qu ick re spon se, h igh re liab ility, gene ra l p u rpo se and good flexib ility.Key word s: R S422; CPLD; in te rface c ircu it; ha rdwa re logic