rs485转can通讯程序怎么写

rs485转can通讯程序怎么写,第1张

这可不只是写程序就能完成的。

在硬件上,需要一个RS485转换成CAN的模块,可以在网上买到的。

如果你用的单片机,支持CAN通信,有一个CAN通信口,并带有一个UART串口,可以接成RS485。这样的话,在硬件上就可以节省转换模块了。

那样,是可以通过写程序完成了。那就简单了,CAN口和UART口互相收发就行了。

摘要:SN65HVD230是德州仪器公司生产的33V CAN收发器,该器件适用于较高通讯速率、良好抗干扰能力和高可靠性CAN总线的串行通信。文中主要介绍SN65HVD230的结构、原理及其在智能电源控制器中的应用。 关键词:收发器 CAN CAN收发器 引言 CAN总线以其较高的通讯速率、良好的抗电磁干扰能力可实现高可靠性串行通信,因而在实际应用中具备极高的应用价值。但是,随着集成技术的不断发展,为了节省功耗,缩小电路体积,一些新型CAN总线控制器的逻辑电平均采用LVTTL,这就需要和之相适应的总线收发器。TI公司生产的SN65HVD230型电路很好地解决了这个问题。

1 SN65HVD230简介 SN65HVD230是德州仪器公司生产的33CAN总线收发器,主要是和带有CAN控制器的TMS320Lx240x系列DSP配套使用,该收发器具备差分收发能力,最高速率可达1Mb/s。广泛用于汽车、工业自动化、UPS控制等领域。

1.1 主要特点及引脚功能 SN65HVD230采用PSOP8封装,具体引脚排列及其逻辑功能如图1所示,表1所列是其引脚功能。

表1 SN65HVD230的引脚功能 各种控制功能主要通过调用系统的通用函数和功能函数来实现。其中,系统通用函数用于系统的初始化及一些通用功能的实现。首先对CAN系统进行初始化,同时完成端口配置、位时间确定、消息体的配置等。其节点初始化函数如下: SN65HVD230可用于较高干扰环境下。该器件在不同的速率下均有良好的收发能力,其主要特点如下: ·完全兼容ISO11898标准; ·高输入阻抗,允许120个节点; ·低电流等待模式,典型电流为370μA; ·信号传输速率最高可达1Mb/s; ·具备热保护,开路失效保护功能; ·具备抗瞬间干扰,保护总线的功能; ·斜率控制,降低射频干扰(RFI); ·差分接收器,具备抗宽范围的共模干扰、电磁干扰(EMI)能力。

引脚号 引脚名称 引脚功能 描 述 1 D 输入 CAN控制器发送数据输入端 2 GND 地 接地 3 Vcc +3V电源 +3V电源电压 4 R 输出 CAN总线接收数据输出端 5 VREF 参考电压 参考电压输出 6 CANL CAN总线低 低电平CAN电压输入/输出 7 CANH CAN总线高 高电平CAN电压输入/输出 8 Rs 方式选择 斜率电阻器输入 1.2 工作模式和控制逻辑 SN65HVD230具备高速、斜率和等待3种不同的工作模式。其工作模式控制可通过Rs控制引脚来实现。图2是SN65HVD230在CAN总线系统中的典型应用图。由图中能够看出,CAN控制器的输出引脚Tx接到SN65HVD230的数据输入端D,可将此CAN节点发送的数据传送到CAN网络中;而CAN控制器的接收引脚Rx和SN65HVD230的数据输出端R相连,用于接收数据。SN65HVD230方式选择端口Rs通过跳线和一端接地的斜率电阻器连接,通过硬件方式可实现3种工作模式的选择,其中斜率电阻器为0~100kΩ的电位器。VRs为加在Rs引脚上的电压。具体工作模式的选择如表2所列。

表2 SN65HVD230的工作模式选择 Vrs 工作模式 VRs≥075Vcc 等待模式 10kΩ到100kΩ接地 斜率控制模式 VRs≤1V 高速模式 使Rs接逻辑低电平能够使收发器工作在高速模式。在高速模式下,收发器的通信速率达到最高,此时没有内部输出上升斜率和下降斜率的限制,但在该方式下,最大速率的限制和电缆的长度有关。 而在有些场合中,考虑到系统成本等问题,使用非屏蔽电缆时,收发器必须满足电磁兼容等条件。为了减少因电平快速上升而引起的电磁干扰,在SN65HVD230中引入了斜率控制方式。这种控制方式可通过连接在Rs引脚上的串联斜率电阻器来实现。电压转换和斜率电阻的关系如图2所示。 在Rs引脚加上逻辑高电平(≥075Vcc),可使器件进入等待模式,处于待机状态,系统只“听”发送过来的消息。在“听”状态下,收发器的发送功能处于关断状态,接收功能仍处于有效状态。此时,接收器对于总线来说总是隐性的。 1.3 控制逻辑 SN65HVD230采用正逻辑控制方式,有接收和发送二种方式,具体控制逻辑如表3所列。

表3 SN65HVD2304的控制逻辑 发 送 接 收 输入D Rs 输出 总线状态 差分输入 Rs 输出R CANH CANL L XRs≤12V H L 显性 VIN≥09V X L H Z Z 隐性 05V<VID<09V X Open X Z Z 隐性 VID≤05V X H X VRS≥075Vcc Z Z 隐性 Open X H 其中,Z表示高阻状态,?表示未定状态,X表示无关。 2 实际应用 某自动测试系统需要多路实时可控的交流供电电源,为此,笔者设计了基于CAN总线的智能电源控制器。该系统的主控电脑中安装了CAN总线通信控制卡,电源控制器中装有CAN总线通信适配卡,故可通过控制卡和适配卡来实现电脑和各智能电源控制器之间的通信,从而完成对各电源控制器的控制及对各电源控制器输出状态的检测。 2.1 系统原理 该电源控制器采用SN65HVD230型CAN总线收发器和Cygnal公司生产的具备33V集成式CAN控制器的C8051F040型单片机来设计CAN总线通信控制卡及CAN总线通信适配卡。其原理框图如图4所示,通过PC控制各个网络节点来实现其具体的控制功能,并以此组成网络控制系统。 2.2 CAN总线通信控制卡的设计 在整个CAN控制网络中,CAN总线通信控制卡起着很重要的作用。该卡主要包括C8051F040型单片机、双口RAM及其控制电路、中断申请电路、复位电路和CAN驱动电路。该控制卡的结构框图如图5所示。CAN通信控制卡通过CAN总线将各个节点串联起来,从而将一个等网络变成一个简单的“一主多从”控制网络。PC通过CAN总线通信控制卡向网络中各个具备不同地址的节点发送各种格式的控制命令字,并将各网络节点中代表各节点状态的数据字读回,以此实现整个CAN网络的控制。 2.3 CAN节点的设计 在整个CAN控制网络中,节点是整个网络的“从者”,他通过相应的地址匹配来识别控制卡发来的信息。若信息不是发送给自己的,则不进行任何动作,若信息是发给自己的,则该节点接收信息,并执行相应的 *** 作。在CAN控制网络中,信息通过帧模式进行传送。CAN节点根据设定的帧格式内容进入相应的控制程式,以对外围电路进行 *** 作控制。CAN节点系统框图如图6所示。 2.4 混合电平电路抗干扰设计 由于智能电源控制器本身是个混合电平系统,内部有多路220V/50Hz交流电、控制电路的33V直流电平、CAN控制网络接口电平等不同电平,因此必须实现不同电平信号的隔离,以增强系统的抗干扰能力。 本系统通过对C8051F040控制信号进行光隔离和驱动处理后控制继电器,以实现对交流电源的输出控制,从而确保了大功率交流电源和内部控制电路之间的有效隔离。而CAN接口在收发器和控制器之间采用了LVTTL/LVCMOS兼容高速光隔离来实现不同电平之间的电气隔离。 2.5 系统软件设计 系统软件主要由CAN总线通信控制卡控制程式和各个节点控制程式二部分组成。CAN总线通信控制卡控制程式是基于Windows的编程,这里不再多述,本文主要给出各个节点的控制程式。

WDTCN=0xde; //关watch dog WDTCN=0xad; config_IO(void); //端口配置函数,实现控制模块的控制引脚的分配 Clock(void); //时钟及CAN总线速度定义函数 clear_msg_objects(void);//各个消息体的清除函数 msg_objects_init(void);//CAN消息体初始化函数 …… startCAN(); //系统允许进行CAN通讯 EA=1; //系统开中断; 3 结束语 在实际工程应用中,SN65HVD230作为一种新型CAN总线收发器,具备高速率和高抗电磁干扰等特点,加之其电气连接十分简单,因而具备良好的实用性。

以上就是关于rs485转can通讯程序怎么写全部的内容,包括:rs485转can通讯程序怎么写、请问can总线通信卡的驱动程序该如何安装呢、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10172274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存