历史上的今天
返回首页

历史上的今天

今天是:2025年03月23日(星期日)

正在发生

2018年03月23日 | 基于单片机ATMega16控制的CAN总线与RS-232转换器电路

2018-03-23 来源:eefocus

    CAN(Controller Area Network)总线是德国BOSCH公司为解决现代汽车中众多控制与测试之间的数据交换开发的一种串行数据通信协议,是一种多主方式的串行通信总线。CAN总线是一种开放式、数字化、多点通信的控制系统局域网,具有通信速率高、传输时间短、传输距离远、纠错能力强、控制简单、扩展能力强以及性价比高等特点,是目前国际上应用最广泛的现场总线之一。但是目前PC机普遍配置RS232串行通信接口,没有CAN总线接口。实际中很多设备带有RS-232接口没有CAN总线接口,为了方便具有RS-232接口的设备与CAN总线的数据通信,本文完成了基于单片机ATMega16控制的CAN总线与RS-232转换器电路设计和软件设计,实现了CAN总线数据与RS-232接口设备的数据传输。

 

    一、简述CAN总线与RS232协议

    CAN作为一种多主方式的串行通讯总线,其基本设计规范要求高位速率和较高的抗电磁干扰性能,而且要能够检测出通讯总线上产生的任何错误。当信号传输距离达10km时,CAN仍可提供高达5kbit/s的数据传输速率。表1为CAN总线上任意两个节点之间最大传输距离

    与其位速率之间的对应关系。

    由此可见,无论从实时性、适应性、灵活性,还是可靠性上来看,CAN总线都是一种比较优秀的串行总线。当两台串口设备的相距较远,不能直接用RS-232把它们连接起来时,就可以把RS-232转换为CAN,通过CAN总线来实现串口设备的网络互连。

     

34

表1 CAN总线系统任意两节鼎足之势之间的最大距离

    RS-232和CAN在电平和帧格式上都是很大的不同。具体表现如下:RS-232标准电平±(3V~15V)之间。而CAN信号则使用差分电压传送,两条信号线称为“CAN_H”和“CAM_L”,静态时均为2.5V左右;RS-232串口的帧格式为:一位起始位,八位数据位,一位可编程的第九位,一位停止位。而CAN的数据帧格式为:帧信息+ID+数据。

    二、CAN总线转RS232总体设计

    CAN总线转2 3 2 的接口硬件电路, 主要选用MAX232、ATMega16、SJAl000和MCP2551设计实现。

    其原理框图如图1所示。34

     

    三、转换器硬件设计

    3.1 主控制器设计

    主控制器选择ATMEL公司的ATMega16作为主处理器,该芯片是一个低电压,高性能单片机,片内含可反复擦写的EEPROM和随机存取数据存储器(RAM),兼容标准MCS-51指令系统。

    ATMega16有44个引脚,32个外部双向I/0端口,同时内含3个外中断口,2个8位和1个16位可编程定时计数器,1个全双工串行通信口,ATMega16可按常规方法进行编程,也可在线编程。ATMega16的4脚接复位电路,低电平有效;9,10脚接MAX232的数据接收/发送端;PD口脚接SJAl000的控制端端;7,8脚接晶振电路;PB口接SJAl000的复用地址/数据总线。


    3.2 MAx232电路设计

    选择MAX232芯片作为RS232与CAN总线的电平转换器。MAX232是一种电平转换驱动器,提供TTL与RS232电平的转换。其13、14脚接到232接口的2、3针;11、12脚接到单片机的接收、发送端。

    3.3 CAN控制器电路设计

 

    选用Phi l ip公司的SJAl000芯片实现CAN控制器和CAN总线驱动器。SJAl000控制器与单片机硬件连接电路设计,如图2、3所示。

     

34
34

     

    为使SJAl000正确复位,CAN控制器必须连接一个稳定的振荡器时钟,这里选择16MHz的晶振。

    3.4收发器电路设计

    收发器是协议控制器和物理传输线路之间的接口,这里由MCP2551实现。协议控制器通过串行数据输出线(Tx)和串行数据输入线(RX)连接到收发器,收发器通过有差动发送和接收功能的两个总线终端CANH和CANI。连接到总线电缆,实现CAN总线的数据通信。如图4所示。   

34


    四、主程序设计

    在微处理控制下,RS-232和CAN进行数据交换时,采用CAN查询方式和串口发送可提高工作效率。其主程序流程图如图5所示。SJA1000的初始化在复位模式下才可以进行,主要包括工作方式的设置、时钟分频和验收滤波寄存器的设置、波特率参数的设置以及中断允许寄存器的设置等。数据能否准确传递还取决于波特率和流量控制,这也是软件设计时不可忽略的地方。

43

    串口波特率采用9600 bit/s,系统上电初始化后CAN控制器查询发送标志位,一旦发送缓冲区空就发送数据。同时也检测状态寄存器的接收标志位,当有数据接收时读取接收缓冲区,然后判断接收数据帧,当接收帧为错误帧就丢掉数据并将CAN控制器复位,如果数据帧是正确帧就将该帧打包成符合RS232协议的帧结构,通过串口发送出去。

    五、结束语

    本文采用ATMega16、SJAl000、MCP2551和MAX232,设计开发了CAN总线转232的接口,完成了两种协议的转换,实现了CAN总线与RS232通信接口设备之间的通信。测试和实际使用表明该接口运行稳定、可靠,达到了设计要求。


推荐阅读

史海拾趣

Global Communications公司的发展小趣事
根据应用场景中可能遇到的环境温度范围,选择具有相应温度测量范围的温度传感器。
Exclara Inc公司的发展小趣事

在电子行业这个竞争激烈的领域里,技术的更新换代速度非常快。为了保持领先地位,Exclara高度重视研发投入,不断引进高端人才和先进设备,加强研发团队建设。通过持续的研发投入,公司不仅保持了技术的领先地位,还成功开发出了一系列具有自主知识产权的核心技术。

安普康(AMPCOM)公司的发展小趣事

在电子行业竞争日益激烈的背景下,安普康深知创新是企业发展的核心动力。因此,公司始终将研发投入作为重要战略之一。通过引进先进的生产设备和技术,安普康不断提升产品的品质和性能。同时,公司还积极与国内外知名企业和研究机构合作,共同开展技术研发和创新。这些努力使得安普康在光纤产品、布线产品等领域取得了多项专利,并成功推出了一系列具有市场竞争力的新产品。

American Power Design Inc公司的发展小趣事

在电子行业的早期,American Power Design Inc(简称APDI)由一群热衷于电力电子技术的工程师创立。他们研发出了一种高效的电源管理芯片,显著降低了电子设备的能耗和热量产生。这一创新很快吸引了市场的关注,APDI迅速获得了多家大型电子制造商的合作意向。随着技术的不断完善和市场的扩大,APDI逐渐在电源管理领域建立了领导地位。

Eutech公司的发展小趣事

在全球化的浪潮下,EUtech公司积极寻求国际合作。他们与德国的氢探新能源公司建立了长期稳定的合作关系,共同研发燃料电池系统控制技术。通过共享资源、互补优势,双方不仅提高了产品的竞争力,还推动了整个行业的技术进步。

eLED.com Corp公司的发展小趣事

随着国内市场的逐渐饱和,eLED.com Corp开始将目光投向国际市场。公司积极参与各类国际展会,向全球客户展示其优质的产品和技术。同时,eLED.com Corp还与国际知名企业开展合作,共同研发新技术,推动LED行业的发展。通过与国际巨头的合作,eLED.com Corp不仅提升了自身的技术水平,还拓展了国际市场,实现了品牌的全球化布局。

问答坊 | AI 解惑

RS-485接口芯片介绍及应用中的有关问题

1引言    RS-485接口芯片已广泛应用于工业控制、仪器、仪表、多媒体网络、机电一体化产品等诸多领域。可用于RS-485接口的芯片种类也越来越多。如何在种类繁多的接口芯片中找到最合适的芯片,是摆在每一个使用者面前的一个问题。RS-4 ...…

查看全部问答>

关于Quartus中仿真的问题

是这样的,写了verilog的一个小程序,编译成功了,然后创建bdf文件以后,再编译,就出错。 报错是:    Error: Can\'t compile duplicate declarations of entity \"sig\" into library \"work\" Error: Instance could be entity \" ...…

查看全部问答>

如何将驱动程序打包

我现有一个驱动的.sys文件和.inf 文件 以及一个用VC编写的应用程序(.exe)的文件,我想把它打包成一个安装文件,请高手指点一个! 由于本人是新会员,没有什么积分!不过请不吝赐教!!!…

查看全部问答>

专业提供驱动开发外包服务和支持

欢迎访问:http://www.drivercoding.com.cn MSN或者QQ,Mail都可以,基本在线…

查看全部问答>

S3c2410上电时,关于SDRAM的默认初始值与手册上的不一样是怎么回事?

S3c2410上电时,关于SDRAM的默认初始值与手册上的不一样是怎么回事? 我没有将BOOTLOADER下载进去,也没有从外部初始化SDRAM,因此正常的话应该是手册上的初始值,但是我的全是0,不知是怎么回事? 然后 我又手工通过Multi-ICE对SDRAM进行 ...…

查看全部问答>

台达VFD-P 11KW的"CFF"故障,还是没搞定!

请教台达VFD-P系列11KW的\"CFF\"故障    一台达VFD-P系列11KW变频器,驱动一惯量较大的负载(外接有BRAKE单元),以前正常,现在出现\"CFF\"故障.    \"CFF\"的意义是:“变频器有异常输出现象.输出接地(接地电流大于额定电流的50%以上时),功率模组 ...…

查看全部问答>

为什么STR710的PLL1有输入限制?如果超过了有什么影响吗?

                                 我的有源晶振是16MHz的,2分频后,输入PLL1,然后倍频16倍,再2分频,输出64MHz给MCLK,相关实验都做过了,没有什 ...…

查看全部问答>

急聘兼职PCB设计工程师

公司致力于基于计算机的高端虚拟仪器研发与销售,目标成为高端虚拟仪器第一名!欢迎有电子类从业有志者问询和加盟! 兼职PCB工程师 要求: 1. 高速PCB设计 2. 8层以上PCB设计 3. 精通并熟练使用Candence Allergo等画图软件 请将简历发至hr.xing@que ...…

查看全部问答>

编程风格

关于C语言编程,括号必须与括号内的内容紧挨着吗?我总是喜欢把括号与括号里的内容用空格隔开空格,如:( void )。这样有什么弊端,…

查看全部问答>

djyos的可移植性(二)

1.     数据位宽与对齐     嵌入式开发中,对于移植性来说,数据类型的长度和对齐,是一个很容易出错的问题。1.1.   对齐     关于什么是对齐,有很多资料,不明白的,可以google,这里不占用篇 ...…

查看全部问答>