APP下载

DSP与CAN总线驱动器的一种接口方案研究

2018-01-17曹英健李雪陈鹏何雨昂张巍苗硕

电子技术与软件工程 2017年23期
关键词:低电平高电平支路

曹英健++李雪++陈鹏++何雨昂++张巍++苗硕

摘 要 本文提出了一种3.3VDSP TMS320F2812与5VCAN总线驱动器PCA82C250的接口方案,用较简单的电路实现了电平转换功能,并介绍了研制中元器件的选型过程及要求,给出了方案电路中各元器件参数的测定方法。该设计方案已经成功应用到了控制器与上位机的通信当中,进行了理论设计并完成了试验验证,试验结果表明了其有效性和可靠性。

【关键词】DSP TMS320F2812 3.3V转5V CAN总线 接口

CAN(Controller Area Network)总线,又称控制器局域网,是由德国Bosch公司为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,是一种有效支持实时控制和分布式控制的串行通信网络。CAN总线属于现场总线范畴,它是一种分散式、数字化、双向、多站点的通讯系统,由于CAN总线具有实时性好、可靠性高、抗干扰能力强、传输距离远、通讯速度快、采用短信息帧结构和多主通信方式以及可使用多种通信介质等许多优点,非常适用于分布式控制系统的数据通讯,在航空、航海、汽车以及各种工业自动化控制系统中得到了广泛的应用。鉴于CAN总线的以上优点,开发一种实用可行的CAN总线通信接口电路对于民品发展是有实际意义的。

随着CAN总线技术的迅速发展和广泛应用,很多处理器已将CAN总线通信功能集成在芯片内部。TI公司的TMS320F2812片内就集成了CAN总线控制器,只需外接较简单的接口电路即可实现CAN总线通信。本文设计了一种3.3VDSP TMS320F2812与5VCAN总线驱动器PCA82C250的接口方案,用很少的必要的元器件和较简单的电路实现了电平转换功能,并将其应用到了实际的控制器系统设计中,系统工作正常,可以进行稳定的数据传输。

1 接口方案设计

设计中选用的TI的DSP TMS320F2812内部已经集成了一个CAN总线控制器,只要外接CAN总线驱动器即可实现和CAN总线的通信。为了与上位机5V的CAN总线PCI板卡兼容,本设计中选用的CAN总线驱动器芯片是Philips公司的PCA82C250。

TMS320F2812的I/O口的输入输出电压为3.3V,而PCA82C250是一款采用5V电源供电的芯片,TMS320F2812的VOH是3.3V,而82C250的VIH要求在3.5V以上,很明显TMS320F2812的输出不能直接驱动82C250; 同时,82C250的VOH大于4V,而TMS320F2812的VIH最大仅为3.6V,故PCA82C250的输出亦不能直接连到TMS320F2812,在TMS320F2812與PCA82C250接口都需要设计电平转换电路,满足双方的输入输出电压要求。

PCA82C250与CAN控制器的接口电路一般都采用光耦隔离器,如PCA82C250与SJA1000的接口就推荐采用高速光耦6N137进行接口,但是由于高速光耦6N137的供电与输出均为5V,该方案只适合于CAN控制器与总线驱动器均采用5V电源的情况。TMS320F2812内集成的CAN总线控制器为3.3V供电,不能直接通过光耦隔离器与5V的CAN总线驱动器进行接口,利用光耦隔离器进行接口的方案不适用于3.3V的TMS320F2812与5V的CAN总线驱动器PCA82C250接口的情况。

针对3.3V的TMS320F2812与5V的CAN总线驱动器PCA82C250接口问题,本文设计了一种用二极管和电阻网络实现TMS320F2812和PCA82C250之间3.3V-5V电平转换接口的实现方案。该方案分别仅用一个电阻和一个二极管、两个电阻组成的网络即实现了3.3VDSP和5VCAN总线驱动器发送和接收支路的接口,大大简化了电路设计,并且设计中采用高速开关二极管和电阻网络比光耦隔离器产生的时间延迟要短,可以进行更高速率的数据传输。接口硬件总体设计方案如图1所示。

其中二极管D1起升压作用,以满足PCA82C250对输入高电平的要求,电阻R8、电阻R6和R7起调压限压作用。

CAN总线驱动器PCA82C250是驱动CAN控制器和物理总线间的接口,提供对总线的差动发送和接收功能。图1中CANTXDA和CANRXDA分别为TMS320F2812中CAN总线控制器的发送和接收引脚,CANIO为TMS320F2812的一个GPIO口,配置为输出模式控制82C250的工作状态。在CANTXDA引脚上接入了一个二极管,从而使TXD电压提升了一个二极管结电压,以满足PCA82C250的输入高电平要求;同时RXD的电平经过两个电阻的分压输入到DSP,使得CANRXDA引脚接收的电平可以保证在3.3V以下,确保DSP不会被烧坏。

需要特别指出的是:现在很多书籍和资料中类似的接口电路都存在一个错误,就是发送电路上所接电阻R8不是下拉到地而是接在了+5V上,经过实验测量发现R8上拉到+5V,无论接入的电阻R8加多少都不能将CANTXDA的电压降到3.3V(在本设计中选用的二极管结压降约为0.4V,故TXD电压应降为3.7V)。

查PCA82C250的手册可知其引脚TXD内部已经通过电阻上拉到+5V,外部R8再上拉到+5V相当于R8与TXD内部的上拉电阻并联,只能进一步提高CANTXDA引脚的电压,并增加流入CANTXDA引脚的电流,有烧毁DSP的危险。因此,要使CANTXDA引脚的输入电压降为3.3V,即TXD引脚电压降为3.7V,R8必须如图1所示下拉到地而不是上拉到+5V。

2 二极管选型及特性测量

在本设计中选用的二极管型号为Motorola的MUR 120,其特性参数如下:反向耐压200V,工作和储存温度-65?C~+175?C,常温25 ?C时最大正向电压0.875V,最大反向电流2.0μA,最大反向恢复时间25ns,最大正向恢复时间25ns。endprint

为了保证二极管的完好和可用性,并对二极管的输入输出特性获得清楚的认识,设计中先对二极管D进行了结电压-电流特性测量,测量电路图如图2所示。

改变电阻R,可以测得不同电流时二极管D的结电压与流过其电流的关系,即二极管D的电压-电流特性。实际测量数据表明,当电阻R从100Ω~100KΩ变化时,二极管结电压的变化范围是0.53V~0.4V。

根据该二极管的最大正向恢复时间可以计算出单个二极管可以达到的最大开关频率:

由于实际工作中二极管始终处于正向导通状态,没有正反向的切换,所以其最大开关频率应当大于40MHz,而CAN总线通讯的最大波特率仅为1Mbps,因此该二极管是可以满足传输速度需求的。

由数据可以看出该二极管的结电压在0.4V~0.5V间变化,在电阻较小范围内变化时结电压近似为一恒定值,该值约0.4V。

设计中考虑到TMS320F2812的GPIO口的输出电压高电平为3.3V,不满足PCA82C250输入高电平大于3.5V的要求,故采用二极管D进行升压。单个二极管可以升压0.4V左右,即可以将电压由3.3V升高到3.7V左右,与PCA82C250输入高电平的下限值3.5V相比余量只有0.2V左右,考虑到升压幅度可能不够高,拟采用双二极管串连代替单个二极管进行电路升压作为备用方案,因此还对双二极管串联进行了电压-电流特性测量。测量电路图如图3所示。

改变电阻R,可以测得电流不同时二极管D1和D2串联的结电压与输入电流的关系,即双二极管D1和D2串联的电压-电流特性。实际测量数据表明,当电阻R从1KΩ~100KΩ变化时,双二极管D1和D2串联结电压的变化范围是1.02V~0.79V。

双二极管串联在进行通断的时候,可以看作是顺序动作,因此其恢复时间可以看作是单个二极管恢复时间的二倍(实际上应当小于这个数值),故双二极管串连可以达到的最大开关频率:

仍大于CAN总线通讯的最大波特率为1Mbps,因此双二极管串联的方案仍是可以满足通讯速度需求的。

由数据可以看出双二极管串联结电压在0.8V~1V间变化,在电阻较小范围内变化时结电压近似为一恒定值,该值约0.8V。

可见两个二极管串连使用可将电压提升0.8V左右,如果调定CANTXDA处电压为3.3V,则PCA82C250的输入电压TXD可以达到4V以上,可以保证TXD的输入高电平有较大裕量,但是两个二极管串连开关时间会加长,数据传输速度会受一定影响。

单个二极管的结压降约为0.4V,因此粗略估计当整定CANTXDA输出高为3.3V时,PCA82C250的输入端可以升压至3.7V左右;而当CANTXDA输出为低时,CANTXDA电压几乎为零,此时PCA82C250的TXD端电压为一个结压降0.4V左右。查PCA82C250的手册可知其输入高电平VIN的范围是[0.7Vcc,Vcc+0.3]V,即[3.5,5.3]V,输入为低电平的VIN电压范围是[-0.3, 0.3Vcc],即[-0.3, 1.5]V。因此,单个二极管可以满足设计要求,方案可行。

如果要进一步提高PCA82C250的输入电压,可以两个二极管串连使用,此时当整定CANTXDA输出高为3.3V时,PCA82C250的输入端可以升压至4V左右;而当CANTXDA输出为低时,此时PCA82C250的TXD端输入电压为两个结压降0.8V左右,仍然满足要求,只是两个二极管串连以后时间延迟会加长,通信速度会受到一定限制。

本设计中考虑到电路板设计的时候只留了一个二极管的安装位置,为了安装方便可靠,最终确定选用单个二极管进行升压。为了确保系统可以正常工作,在后面的工作中进行了实际输入余量测量,主要对PCA82C250的TXD引脚的输入高电平的余量进行了测量和验证。

3 电路接口参数测定

电阻测量确定分两部分进行,一部分工作是测量调整发送支路的电阻R8,使DSP的发送端CANTXDA引脚高低电平都能满足其电压要求的同时,保证其输出高电平和低电平时均能满足TXD输入的电压要求;另一部分工作是测量调整接收支路的电阻R6和R7,保证PCA82C250的接收端RXD输出高低电平时,都能满足DSP接收引脚CANRXDA的输入电平要求。

查TMS320F2812和PCA82C250手冊可以确定其输入输出电压范围如表1和2所示。

PCA82C250采用的供电电压VCC为5V,因此表中各电压值为0.7VCC=3.5V,VCC+0.3=5.3V,0.3 VCC=1.5V。

3.1 发送支路电阻测定

查TMS320F2812的手册,可知CANTXDA和CANRXDA两引脚在DSP内部都已用电阻上拉,上拉电阻设为RL。从PCA82C250手册中可以查出其内部引脚配置原理图,将其与外部电路图都画出来,有助于更好地研究该接口电路,可以在电阻值的测定实验中起一定指导作用。发送支路电阻测定的电路图如图4所示。

图4中点画线框内分别表示TMS320F2812和PCA82C250芯片内部的电路,将芯片内部和外部的电路都画出来便于认识整个电路并进行理论分析和计算。

为了测定电阻R8的值,试验中在其位置上接了一个变阻箱,同时用电压表测量U1点电压值,调节变阻箱R8的阻值,使U1点电压值变为3.3V,并保证此时二极管已经导通,测得此时电阻R8的值为28KΩ。将电压表移到TXD测量此时TXD输入端的电压U2的值,测得此时U2约为3.65V>3.5V,满足PCA82C250输入高电平的要求。

测定验证CANTXDA输出为低电平时,TXD输入电平满足PCA82C250输入为低电平的要求。电路板接上仿真器与上位机相连,在程序中将CANTXDA引脚设置为GPIO输出引脚,并将其置为低电平状态,用电压表测量U1和U2两点电压,测得U1=0,U2=0.44V<1.5V,满足PCA82C250输入为低电平的要求。endprint

值得注意的是:PCA82C250的CANIO控制端是否使能,其TXD引脚输入电平略有不同,PCA82C250处于正常工作状态时TXD引脚输入电平略低于上电后的等待状态,如在本设计确定的电阻参数下,PCA82C250上电后未使能时CANTXDA引脚电压U1=3.317V,使能后正常工作时CANTXDA引脚电压U1=3.297V,故在调节变阻箱R8的阻值测定电阻R8的过程中应当下载程序到电路板(RAM中),并在DSP程序中将CANIO控制端置低使能PCA82C250,只有这样测定的电阻R8才是正常工作时需要的电阻值。

3.2 接收支路电阻测定

根据PCA82C250手册中给出的CANRXDA内部引脚配置原理图,将其与外部电路图都画出来,有利于更好地研究该电路,从理论上分析接口电路,并在电阻测定实验中起一定理论指导作用。接收支路电阻测定的电路图如图5所示。

在图5中,Q2和Q3的中间基极(即2脚)连接线与水平线交叉但没有相接,其余交叉的连线都是接在一起的。接收支路电阻的测定过程较复杂,需要权衡高低电平时各方面的影响,综合考虑高低两个电平的电路状态选择一对合适的电阻值。

PCA82C250的控制端是否使能,即PCA82C250是否处于正常工作状态,接收电路高电平是不同的,正常工作时RXD引脚高电平要高于等待状态时的高电平,因此测定电阻R6和R7的值,必须在将PCA82C250的控制端使能的情况下进行。由于本设计中用GPIO引脚控制PCA82C250的控制端,因此在测定电阻时要先准备好软件的状态,将CANIO置低,并使CANRXDA工作在CAN状态。

经测量,PCA82C250的RXD端的输出不是理想的5V和地输出,而是有特定值的, PCA82C250正常工作时,RXD输出端的高电平为4V,低电平为0.5V。电阻R6和R7组成的电阻网络要实现的功能是RXD输出高电平4V时,CANRXDA引脚输入电压不高于3.3V;RXD输出为低电平0.5V时,CANRXDA引脚输入电压不高于其低电平输入上限0.8V。

当RXD输出高电平4V时,其输出为晶体管输出,相当于一个电压源,只要R6和R7满足一定的比例关系,就可以将CANRXDA的输入电压U1调整到3.3V,其余0.7V电压要降在R7上,故R7的阻值不能太小;当RXD输出为低电平0.5V时,由于引脚CANRXDA在TMS320F2812内部是通过电阻上拉的,因此存在一个上拉电阻RL到3.3V,电流分两条支路流过R6和R7,在R6和R7上产生压降,要保证CANRXDA的输入电压不高于输入为低电平最大值0.8V,R7上产生的压降不能大于0.3V,因此R7阻值不能过大。

经过原理分析和实验测量,R7阻值的选择是本设计的关键,要保证高低电平时电路都能正常工作,R7阻值既不能太大也不能太小。经过测量选定R7阻值为1KΩ,R6接一个变阻箱,用电压表测量CANRXDA引脚电压U1,调节变阻箱的阻值使CANRXDA引脚电压U1变为3.3V,由此得出R6的阻值。实际测定R6=3 KΩ。

在如上测得的电阻参数下,PCA82C250上电后处于等待状态时,CANRXDA引脚的高电平电压为2.023V;PCA82C250使能后处于正常工作状态时,PCA82C250引腳的高电平电压为3.212V。原因在于PCA82C250未使能时,CANRXDA内部相当于通过一个电阻上拉到+5V电源,CANRXDA引脚的高电平电压为内部上拉电阻与外接电阻分压的结果;PCA82C250使能后,CANRXDA内部相当于通过三极管上拉到+5V电源,三极管采用电压反馈,即CANRXDA引脚输出相当于一个恒压源。

测量当R7=1KΩ,R6=3KΩ时,当RXD输出为低电平0.5V时输入CANRXDA引脚的电压能否满足低电平的要求。由于只有当CAN总线状态发生变化,接收端接收到数据时,PCA82C250的接收端输出引脚RXD才能够在传送数据的过程中有低电平出现,所以测量试验中在DSP执行的程序中加入用CAN总线发送端向总线发送数据的代码,让DSP的CAN控制器不断发送数据,用示波器观察和监视DSP接收端CANRXDA引脚的电压波形,从示波器上测量低电平电压值约为560 mV<0.8V,故该组电阻值可以满足CANRXDA引脚输入为低电平的要求。

综上,R7=1KΩ,R6=3KΩ能够满足接收支路高低电平转换的要求,可以保证CAN总线电路正常工作。

4 输入电平余量测量

为了保证电路可以稳定可靠地工作,本设计对电路进行了输入输出电平余量测量,测量的目的是对该数字电路中元器件对高低电平的辨别能力有所了解,保证留有足够的余量,使CAN总线通讯正常。余量测量两步进行:第一步用实际值与手册给出的最大(或最小)值相比较,如果余量较大,可以认为电路可以正常工作,不用进行实测;如果余量较小,测量实际的阈值,得出针对该具体元件的余量,如果余量较大,可以应用,若余量仍较小,则需对电路进行一定的改进,尽量增加输入输出余量。

发送支路的高电平余量3.65V-3.5V=0.15V,低电平余量1.5V-0.45V=1.05V,该两个电平为PCA82C250的输入电平;接收支路的高电平余量3.3V-2V=1.3V,低电平余量0.8V-0.56V=0.24V,该两个电平为TMS320F2812的输入电平。

根据以上分析可知,发送支路的高电平余量和接收支路的低电平余量较小,仅为0.15V和0.24V,又由于接收支路PCA82C250的输出RXD的低电平即约为0.5V,与DSP输入的低电平最大值之差只有0.3V,改进的余地不大,因此着重进行了发送支路的高电平余量的测量。

测量方法如下:

按照图4连接电路,用电压表测量PCA82C250的输入引脚TXD电压U2,同时用示波器监测CAN总线CANH和CANL之间的差分电压。endprint

在图4 R8的基础上逐渐减小变阻箱阻值,同时注意示波器上的图线变化,当变阻箱的阻值减小到某一值时,示波器的图线由0V跳变到2V以上的某一正值,说明CAN总线状态由隐性位跳变为显性位。

记录此时电压表测量的PCA82C250的输入引脚TXD电压U2的值,该状态为TXD输入高和低的临界状态,低于该状态电压U2的值PCA82C250将认为是低电平,并且高低电平应当尽量远离该阈值。实际测量中测得的U2的阈值电压为2.4V,因此实测的PCA82C250的TXD高电平输入余量为3.65V-2.4V=1.25V,比理论上算出的余量要大的多,故该电路可以保证正常工作。

5 通信效果测试

为了检验CAN总线接口的通信效果,在设计中进行了控制器通过CAN总线接口与上位机CAN接口卡的通信效果及波形测试。

测试试验中,在上位机CAN接口卡的通信软件上每1ms发送一个8字节数据包,软件自动记录发送数据包个数,并在控制器上记录收到数据包的数量及内容。试验中数据包发送-停止交替进行,以测试开始发送时的可靠性,共发送了10400个数据包,收到的数据包个数及内容与发送的数据包相同,未出现数据包丢失和出错的现象,证明系统可以长时间较可靠地工作,接口稳定可以满足系统的通信需要,达到了设计的既定目的。

试验中还记录了波特率为50kbps时,上位机与控制器通过CAN总线接口通信的波形,以对硬件电气接口进行评估测试。

用示波器测得发送支路电平CANTXDA引脚与地之间电压低电平为240 mV,高电平为3.40V;CANH与CANL之间隐性位电压为120 mV,显性位电压为2.90V。测得接收支路电平CANTXDA引脚与地之间电压低电平为580mV,高电平为3.24V;CANH与CANL之间隐性位电压为120mV,显性位电压为2.90V。

通过示波器对CAN总线通信电平的测量结果也可以清楚看出,该接口电路的输入输出电平是满足TMS320F2812和PCA82C250要求的。

6 结束语

本文提出了一种由二极管和电阻网络构成的3.3V DSP TMS320F2812和5V CAN总线驱动器PCA82C250的接口方案,用较简单的电路实现了电平转换功能,并给出了方案中各元器件参数的测定方法。该设计方案已经成功应用到了控制器与上位机的通信当中,经测试未出现误码和丢数据包的情况,实验结果表明了其有效性和实用性。

该方案的优点在于做到了电路最简化,用最少的元器件实现了电平转换功能,节约了电路板空间,并能保证工作稳妥可靠;不足之处在于用二极管和电阻分压网络实现的电平转换CAN总线驱动器与电路板是共地的,不能实现电源的隔离,总线上的电磁干扰容易影响到整个电路,另外,此接口电路发送与接收电气直接相连,通信抗干扰性较差,较易受周围电路的影响。

参考文献

[1]史久根,张培仁,陈真勇.CAN现场总线系统设计技术[M].北京:国防工业出版社,2004(10).

[2]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003(06).

[3]苏奎峰,吕强,耿庆锋,陈圣俭.TMS320F2812原理与开发[M].北京:电子工业出版社,2005(04).

[4]PCA82C250 CAN Controller Interface Datasheet[Z].Netherlands:Philips Corp.,2000.1

[5]TMS320F2810,TMS320F2811,TMS320F2812,TMS320C2810,TMS320C2811,TMS320C2812 Digital Signal Processor Data Manual[Z].Texas:Texas Instruments Corp.,2005(10).

作者簡介

曹英健(1982-),男,河北省人。高级工程师,自动化专业硕士,现从事控制器、电机驱动器等电力电子产品研发,长于电子产品可靠性设计与故障模式探究。

作者单位

北京精密机电控制设备研究所 北京市 100076endprint

猜你喜欢

低电平高电平支路
一种新的生成树组随机求取算法
一种基于FPGA的PWM防错输出控制电路
铁道车辆高/低电平信号智能发生器设计
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
DM 50KW中波广播发射机欠推动故障分析
PDM 1kW中波广播发射机保护电路分析
多支路两跳PF协作系统的误码性能
15-MeV电子直线加速器的低电平系统
利用支路参数的状态估计法辨识拓扑错误