??
字號:
<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 + -