📄
字号:
<STRONG>CAN</STRONG>节点与<STRONG>RS232</STRONG>串行口的通信就成为工程实践中一个不可回避的问题。
<P> 本文采用典型的不具备<STRONG>CAN</STRONG>通信能力的<STRONG>AT89C51单片机</STRONG>作为微处理器,设计了一个简单、实用的通信转换模块。该通信转换模块具有体积小、结构简单、通用性好、使用方便等特点。</P>
<P><STRONG> 2 工作原理</STRONG></P>
<P> <STRONG>CAN-RS232</STRONG>通信转换模块通过硬件电路的电平标准转换和软件编程的通信协议转换实现相关功能。</P>
<TABLE align=left>
<TBODY>
<TR>
<TD id=Adimg>
<DIV id=AdvertisemantBar1>
<DIV> </DIV></DIV><!-- AdvertisemantBar end --></TD></TR></TBODY></TABLE>
<P><STRONG> 2.1 电平标准转换</STRONG></P>
<P> <STRONG>RS232</STRONG>采用的不是TTL电平的接口标准,而是负逻辑,即逻辑"1"为-3 V~-15
V;逻辑"0"为+3 V~+15
V;而<STRONG>CAN</STRONG>总线是采用"显性"和"隐性"两个互补的逻辑值表示"0"和"1",其信号是以两线之间的"差分"电压形式出现的。这样导致两总线之间的信号电压不匹配。无法直接进行正常的通信,因此,需要相应的硬件接口电路实现电平标准转换。</P>
<P><STRONG> 2.2 通信协议转换</STRONG></P>
<P> <STRONG>RS232</STRONG>通信属于异步串行通信。一般为两点传输,其每帧的数据格式通常为:起始位+数据位+奇偶校验位(可省略)+停止位;每个数据包的格式通常为:数据包头+数据字节+校验和(溢出不计)。而<STRONG>CAN</STRONG>通信属于总线通信,可以同时存在多个节点,因此通信协议相对也比较复杂,这里以标准帧传输为例,其数据格式通常如表1所列。因此,需要软件处理实现通信协议的转换。</P>
<P align=center><IMG alt=数据格式
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/070514112489703.jpg.png"></P>
<P><STRONG> 3 硬件设计</STRONG></P>
<P> 模块采用Atmel公司生产的AT8<STRONG>9C51型单片机</STRONG>作为微处理器,采用SJA1000和TJA1050分别作为<STRONG>CAN</STRONG>控制器和驱动器,采用MAX202E作为<STRONG>RS232</STRONG>串行接口驱动器,其硬件连接电路图如图1所示。</P>
<P align=center><IMG alt=硬件连接电路图
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/20070509104915.jpg.png"></P>
<P> <STRONG>AT89C51</STRONG>采用外接晶体振荡器提供时钟输入,通过并行地址/数据复用的方式访问<STRONG>CAN</STRONG>控制器SJA1000,P2.0引脚作为片选端口;
SJA1000作为<STRONG>CAN</STRONG>控制器,也采用单独的外部时钟输入,由于集成了<STRONG>CAN</STRONG>协议的物理层和数据链路层功能,可完成对通信数据的帧处理,其地址为
0x00~0xFF;TJA1050作为CAN控制器和物理总线之间的接口,采用高速工作模式,用于提供总线的差动发送能力和CAN控制器差动接收能力;
MAX202E用于实现<STRONG>RS232</STRONG>电平到微控制器接口电路的TTL电平转换。</P>
<P><STRONG> 4 软件设计</STRONG></P>
<P> 模块的软件设计主要包括<STRONG>RS232</STRONG>通信程序和<STRONG>CAN</STRONG>通信程序两部分,采用中断方式。其中,<STRONG>RS232</STRONG>通信数据传输的波特率为115
200 bit/s,数据格式为1位起始位、8位数据位、1位停止位;<STRONG>CAN</STRONG>总线的传输波特率为500
kbit/s,采用PeliCAN模式的标准数据帧格式,每条报文的标识符ID为11位,有效数据为0~8个字节。其软件流程如图2所示。</P>
<P align=center><IMG alt=软件流程如图
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/20070509104934.jpg.png"></P>
<P> 在<STRONG>RS232</STRONG>中断程序中,微处理器对接收的串口数据进行处理后提取出数据字节,通过增加帧结构信息、帧类型、字节长度和标识符等生成CAN报文格式,然后由CAN控制器的发送缓冲区发送出去;在<STRONG>CAN</STRONG>中断程序中,微处理器对接收的有效CAN报文进行解析,提取出字节长度和字节内容,通过增加数据头、数据尾和校验和转换为<STRONG>RS232</STRONG>通信格式,完成数据传输。</P>
<P><STRONG> 5 结束语</STRONG></P>
<P> 该设计已应用于笔者开发的项目一某型低空红外预警系统。用<STRONG>CAN-RS232</STRONG>通信转换模块将<STRONG>CAN</STRONG>总线收到的角度传感器测出的空中目标方位角和高低角
(10 ms一组测角、波特率为500 kbit/s)实时转换为<STRONG>RS232</STRONG>(波特率为115 200
bit/s)串行口数据,使主控计算机(PC104工控机)接收、处理和显示;同时将RS232输出的主控计算机命令转换为<STRONG>CAN</STRONG>总线数据。经实践证明,该模块工作稳定、可靠,且成本低,完全能够满足系统的指标要求,取得了良好的应用效果。</P></DIV><!-- <IFRAME align=center marginWidth=0 marginHeight=0 src="http://www.mcu361.com/ggadsense3.htm" frameBorder=0 width=468 scrolling=no height=80></IFRAME> --><!-- SiteSearch Google -->
<FORM action=http://www.google.cn/custom method=get target=google_window>
<TABLE bgColor=#ffffff border=0>
<TBODY>
<TR>
<TD vAlign=top noWrap align=left height=32><A
href="http://www.google.com/"><IMG alt=Google
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Logo_25wht.gif"
align=middle border=0></IMG></A> </TD>
<TD noWrap><INPUT type=hidden value=www.mcu361.com
name=domains></INPUT> <LABEL style="DISPLAY: none"
for=sbi>输入您的搜索字词</LABEL> <INPUT id=sbi maxLength=255 size=31
name=q></INPUT> <LABEL style="DISPLAY: none" for=sbb>提交搜索表单</LABEL> <INPUT id=sbb type=submit value=搜索 name=sa></INPUT> </TD></TR>
<TR>
<TD> </TD>
<TD noWrap>
<TABLE>
<TBODY>
<TR>
<TD><INPUT id=ss0 type=radio CHECKED value=""
name=sitesearch></INPUT> <LABEL title=搜索网络 for=ss0><FONT
color=#000000 size=-1>Web</FONT></LABEL></TD>
<TD><INPUT id=ss1 type=radio value=www.mcu361.com
name=sitesearch></INPUT> <LABEL title="搜索 www.mcu361.com"
for=ss1><FONT color=#000000
size=-1>www.mcu361.com</FONT></LABEL></TD></TR></TBODY></TABLE><INPUT
type=hidden value=pub-5328795987975450 name=client></INPUT> <INPUT
type=hidden value=1 name=forid></INPUT> <INPUT type=hidden
value=4902616152 name=channel></INPUT> <INPUT type=hidden
value=GB2312 name=ie></INPUT> <INPUT type=hidden value=GB2312
name=oe></INPUT> <INPUT type=hidden
value=GALT:#008000;GL:1;DIV:#336699;VLC:663399;AH:center;BGC:FFFFFF;LBGC:336699;ALC:0000FF;LC:0000FF;T:000000;GFNT:0000FF;GIMP:0000FF;FORID:1
name=cof></INPUT> <INPUT type=hidden value=zh_CN name=hl></INPUT>
</TD></TR></TBODY></TABLE></FORM><!-- SiteSearch Google -->
<DIV class=type-height2></DIV>
<DIV class=add-time>添加时间:2007-05-18 浏览次数:<SPAN
class=type-color2>542</SPAN></DIV>
<DIV style="PADDING-LEFT: 5px; PADDING-TOP: 10px; HEIGHT: 25px"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar4.gif"> 上一个:<A
href="http://www.mcu361.com/News.asp?Id=474">基于FPGA 的DDR
SDRAM控制器在高速数据采集系统中的应用</A></DIV>
<DIV style="PADDING-LEFT: 5px; PADDING-TOP: 5px; HEIGHT: 25px"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar4.gif"> 下一个:<A
href="http://www.mcu361.com/News.asp?Id=476">AT89S52单片机与CF卡的接口设计
</A></DIV>
<DIV></DIV><BR>
<DIV class=page-head>新闻评论</DIV>
<DIV class=TABLE-Mainall>暂时无数据...
<DIV style="TEXT-ALIGN: right"><A
onclick="javascript:window.open('Cret.asp?bId=2&Id=475','news','width=512,height=277,top=300,left=260,scrollbars=yes');return false;"
href="http://www.mcu361.com/"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/add_cret.gif" border=0></A>
<A href="http://www.mcu361.com/Cretall.asp?bId=2&Id=475"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/all_cret.gif"
border=0></A></DIV></DIV>
<DIV class=page-head>免责声明</DIV>
<DIV class=TABLE-Mainall>您现在的位置:管理首页 >> 免责声明
凡本网未特殊注明"稿件来源"的所有文字、图片和音视频稿件,版权均属开发板精品网所有,任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。</DIV></TD>
<TD width=5></TD>
<TD class=TABLE-Side vAlign=top align=middle width=195>
<DIV class=TABLE-side1><SPAN class=type-color1>产品分类</SPAN></DIV>
<DIV class=TABLE-side3>
<TABLE height=21 cellSpacing=0 cellPadding=0 width=195 align=center
border=0>
<TBODY>
<TR align=left>
<TD><A
href="http://www.mcu361.com/Prclass.asp?Id=9"><B>FPGA开发板,CPLD开发板</B></A></TD></TR>
<TR align=left>
<TD><A
href="http://www.mcu361.com/Prclass.asp?Id=1"><B>ARM开发板,工控板</B></A></TD></TR>
<TR align=left>
<TD><A
href="http://www.mcu361.com/Prclass.asp?Id=13"><B>DSP开发板</B></A></TD></TR>
<TR align=left>
<TD><A
href="http://www.mcu361.com/Prclass.asp?Id=14"><B>c8051f开发板</B></A></TD></TR>
<TR align=left>
<TD><A
href="http://www.mcu361.com/Prclass.asp?Id=15"><B>其它单片机开发板</B></A></TD></TR>
<TR align=left>
<TD><A
href="http://www.mcu361.com/Prclass.asp?Id=18"><B>USB开发板</B></A></TD></TR>
<TR align=left>
<TD><A
href="http://www.mcu361.com/Prclass.asp?Id=21"><B>嵌入式系统开发工具</B></A></TD></TR>
<TR align=left>
<TD><A
href="http://www.mcu361.com/Prclass.asp?Id=23"><B>LCD液晶屏</B></A></TD></TR>
<TR align=left>
<TD><A title=供应IC
href="http://www.mcu361.com/Prclass.asp?Id=26"><B>供应IC</B></A></TD></TR></TBODY></TABLE></DIV>
<DIV class=TABLE-side1><SPAN class=type-color1>技术资料分类</SPAN></DIV>
<DIV class=TABLE-side3>
<TABLE height=21 cellSpacing=0 cellPadding=0 width=195 align=center
border=0>
<TBODY>
<TR align=left>
<TD><A title=嵌入式系统
href="http://www.mcu361.com/NeClass.asp?Id=8"><B>嵌入式系统</B></A></TD></TR>
<TR align=left>
<TD><A title=电源技术
href="http://www.mcu361.com/NeClass.asp?Id=9"><B>电源技术</B></A></TD></TR>
<TR align=left>
<TD><A title=接口技术
href="http://www.mcu361.com/NeClass.asp?Id=10"><B>接口技术</B></A></TD></TR>
<TR align=left>
<TD><A title=存储器应用
href="http://www.mcu361.com/NeClass.asp?Id=11"><B>存储器应用</B></A></TD></TR>
<TR align=left>
<TD><A title=EDA技术
href="http://www.mcu361.com/NeClass.asp?Id=12"><B>EDA技术</B></A></TD></TR>
<TR align=left>
<TD><A title=传感与控制
href="http://www.mcu361.com/NeClass.asp?Id=13"><B>传感与控制</B></A></TD></TR>
<TR align=left>
<TD><A title=电测仪表
href="http://www.mcu361.com/NeClass.asp?Id=14"><B>电测仪表</B></A></TD></TR>
<TR align=left>
<TD><A title=显示光电
href="http://www.mcu361.com/NeClass.asp?Id=15"><B>显示光电</B></A></TD></TR>
<TR align=left>
<TD><A title=模拟技术
href="http://www.mcu361.com/NeClass.asp?Id=16"><B>模拟技术</B></A></TD></TR>
<TR align=left>
<TD><A title=综合应用技术
href="http://www.mcu361.com/NeClass.asp?Id=17"><B>综合应用技术</B></A></TD></TR></TBODY></TABLE></DIV>
<DIV class=TABLE-side1><SPAN class=type-color1>技术资料搜索</SPAN></DIV>
<DIV class=TABLE-side3>
<TABLE cellSpacing=0 cellPadding=0 width=165 border=0>
<FORM name=Searchl action=Search.asp method=post>
<TBODY>
<TR>
<TD> 关键字: <INPUT class=INPUTimage id=Selectkey maxLength=50
size=15 name=Selectkey></TD></TR>
<TR>
<TD height=50><INPUT type=radio CHECKED value=News_Title
name=xSearch>主题 <INPUT type=radio value=News_Content
name=xSearch>内容 <INPUT type=image
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/y_seach.gif"
align=absMiddle name=Ok><INPUT type=hidden value=News
name=Searchclass></TD></TR></FORM></TBODY></TABLE></DIV>
<DIV class=TABLE-side1><SPAN class=type-color1>热门技术资料</SPAN></DIV>
<DIV class=TABLE-side3>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:高性能混合信号系统级单片机C8051F020简介及相关资料 添加时间:2007-06-28"
href="http://www.mcu361.com/News.asp?Id=501">高性能混合信号系...</A> <SPAN
class=type-color2>1642</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:基于FPGA NiosII软核的MPEG-4视频播放器 添加时间:2007-04-28"
href="http://www.mcu361.com/News.asp?Id=439">基于FPGA N...</A> <SPAN
class=type-color2>1302</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:基于FPGA IP核的PCI总线接口设计与实现 添加时间:2007-04-27"
href="http://www.mcu361.com/News.asp?Id=434">基于FPGA I...</A> <SPAN
class=type-color2>1241</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:LM358/LM158/LM258/LM2904双运算放大器电路的典型应用 添加时间:2007-09-15"
href="http://www.mcu361.com/News.asp?Id=518">LM358/LM...</A> <SPAN
class=type-color2>1234</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:基于DSP ADSP2185的声控电子记事本 添加时间:2007-04-30"
href="http://www.mcu361.com/News.asp?Id=442">基于DSP AD...</A> <SPAN
class=type-color2>1189</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:基于FM1702的非接触式读写模块设计 添加时间:2007-03-06"
href="http://www.mcu361.com/News.asp?Id=15">基于FM1702...</A> <SPAN
class=type-color2>1137</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:采用Virtex-5 FPGA器件的最低功耗解决方案 添加时间:2007-05-04"
href="http://www.mcu361.com/News.asp?Id=448">采用Virtex...</A> <SPAN
class=type-color2>1121</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:基于USB接口和DSP的飞机防滑刹车测试系统设计 添加时间:2007-04-22"
href="http://www.mcu361.com/News.asp?Id=424">基于USB接口和...</A> <SPAN
class=type-color2>1120</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:智能仪表中FPGA芯片的应用 添加时间:2007-04-24"
href="http://www.mcu361.com/News.asp?Id=430">智能仪表中FPG...</A> <SPAN
class=type-color2>1113</SPAN></DIV>
<DIV style="HEIGHT: 25px; TEXT-ALIGN: left"><IMG
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/Tx_Ar3.gif"> <A
title="产品名称:利用ACTER混合信号FPGA控制多电平系统的电压攀升率 添加时间:2007-05-04"
href="http://www.mcu361.com/News.asp?Id=447">利用ACTER混...</A> <SPAN
class=type-color2>1090</SPAN></DIV></DIV></TD></TR></TBODY></TABLE>
<DIV class=table-span></DIV>
<TABLE cellSpacing=0 cellPadding=7 width=770 align=center bgColor=#58c1c5
border=0>
<TBODY>
<TR>
<TD align=middle>地 址:武汉市洪山区学府家园2-2-1号 邮政编码:430074 Email:<A title=给我发EMAIL
style="FONT-SIZE: 10pt; COLOR: #222222"
href="mailto:mcu361@126.com">mailto:mcu361@126.com</A><BR>开发板精品网提供FPGA开发板,C8051F开发板,EPM7128
CPLD开发板,,EPM7032 CPLD
开发板,DSP开发板,DSP2407开发板,DSP2812开发板,ARM开发板,ARM7开发板,ARM9开发板,ulink
arm仿真器,MSP430开发板,51开发板, LCD液晶显示屏,ULINK仿真器 业务咨询 QQ:13591903,147768826,
328599724 MSN:mcu361@126.com 手机:13971367351
<BR>版权所有.2005-2007.开发板精品网 鄂ICP备07010987号
<SCRIPT language=javascript
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/867103.js"
type=text/javascript></SCRIPT>
<NOSCRIPT><A href="http://www.51.la/?867103" target=_blank><IMG
style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"
alt=我要啦免费统计
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/go.htm"></A></NOSCRIPT>
<SCRIPT language=javascript
src="基于AT89C51单片机的CAN-RS232通信转换模块的设计与实现.files/click.htm"></SCRIPT>
</TD></TR></TBODY></TABLE>
<DIV class=table-span></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -