|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' D$ ~( ^: R u% `% k! l摘要:本文完成了基于单片机控制的CAN与RS-232转换器的研究与设计,设计了AT89C51 单片机对RS-232接口和CAN e& p+ G3 S+ L$ S' K
模块的控制,解决了CAN总线与RS-232 接口数据通信速率以及通信帧格式不同的技术,实现了RS-232接口数据与CAN总8 h: h% l- C7 G0 d u' l) e( t4 m
线数据的传输。1 {' N# B7 g0 C5 O9 M1 \ y
关键词:单片机; CAN总线; RS- -232
* O) c! o: ]5 Q9 K/ g( ]1概述! h( ~$ n' o# r7 {" ]3 D, |! r1 G9 p
CAN(Controller Area Network)总线是德国BOSCH公司为解) E! t! q& _; P+ E
决现代汽车中众多控制与测试之间的数据交换开发的-种串
: a3 h$ i2 Z. Q6 R- R& N行数据通信协议,是一种多主方式的串行通信总线。CAN总线
% j$ D A( @0 y是一种开放式数字化、多点通信的控制系统局域网,具有通信: B. [; H- O- O( x
速率高、传输时间短传输距离远纠错能力强控制简单、扩展
% u" s. z7 d' \% l能力强以及性价比高等特点,是目前国际上应用最广泛的现场4 F. K" m9 p- |. V0 @( r' {
总线之一。% _- y0 D/ N' |6 T H
基于CAN总线的CAN控制器具有完成CAN总线通信协
0 m& u. A" Z( Y" o2 U- N- t' q议所要求的全部必要功能,因此CAN控制器与其它微处理器的8 c2 v+ U" s1 s4 ?6 @: k
接口成为设计CAN总线系统的首要工作。实际中很多设备带
8 J6 d+ O1 O( O2 s3 `. ^有RS- -232接口,为了方便具有RS- -232 接口的设备与CAN总.
, A0 h( M# E9 _线的数据通信,本文完成了基于单片机控制的CAN总线与RS-
4 G5 W# K; m6 t/ w232转换器电路设计和软件设计,实现了CAN总线数据与RS-
% A1 \. `! A/ j/ E; S, B7 A232接口设备的数据传输。
: L: o& o: X) W" J- s8 D% P1 h2基于单片机控制的CAN总线与
F$ h4 b* g! u+ d: ^# HRS--232转换器电路设计
& N/ ~7 i( y+ W XCAN总线与RS- 232转换器电路包括:主控制模块、RS- -232
* T' D: r+ i$ [, n/ N* N9 i, ~接口转换电路和CAN控制模块3个主要部分。
+ r! S2 \& E! B2 w5 R主控制模块的功能是处理CAN总线以及RS- -232接口的
9 w$ K! A' `' M! s% E数据通信和控制,本设计应用AT89C51完成对转换器各个接口9 q0 H) O( a& m6 s
的控制,实现CAN总线和RS- -232接口两种协议数据帧的转换,
0 |3 L8 A6 C7 o# ?使用带有SPI总线接口的X25045实现硬件看门狗功能。主控% k, v. y5 a8 q( n- A
模块电路如图1所示。: U4 p1 x$ K0 N% J1 S) U
RS- -232接口电路由MAX232芯片构成,实现将单片机串口# ~. F) i- D! F B2 A( N
的TL电平与RS -232电平的相互转换,完成RS- -232接口信息
/ @& x! X# u" g
. \& v3 B! o: a* L$ r! E2 l的输人输出传输。, ^. R( P7 e: {) u a! ]
CAN控制器模块,主要完成CAN协议的物理层和数据链7 n4 s- [# C& ~2 b
路层协议的实现。其中物理接口采用PCA82C250芯片实现物
% S) o: ?8 s% Y; @1 J, O w理层的电平转换和传输。CAN控制器使用SJA1000芯片,完成9 X* `6 \& d/ }- k
数据链路层功能,实现CAN总线信息的输人输出传输。* G$ a3 o0 |5 l' u8 v
AT89C51是CAN总线与RS--232转换器的控制器,提供以
0 ]3 Z) S' ?$ @ B5 j" m% v下标准功能:4k字节Flash 闪速存储器,1000次可擦写周期,三, K9 |* j2 ?5 J7 v: N
级加密程序存储器,128字节内部RAM,32个I/0口线,两个16
; c2 A* C8 s+ _7 H' K6 R4 |+ C# D位定时/计数器,-个5向量中断结构,-一个全双工串行通信口,
6 f4 S$ p% P0 y4 J6 U片内振荡器及时钟电路。同时,支持两种软件可选的节电T.作模
$ \8 X6 y, T1 k4 K式。空闲方式停止CPU的工作,但允许RAM、定时/计数器、窜行
: V4 m! ?% t- l+ h/ V通信口及中断系统继续工作。掉电方式保存RAM中的内容,但' S: w+ y' F9 ^! w0 R4 ^2 h$ j
振荡器停止工作并禁止所有部件工作直到下一个硬件复位。- G& u2 ~( u+ I, h
AT89C51使用的晶振信号由SJA1000提供(SJA1000用
5 z7 d( \! T0 W- n' O1 Y24MHz的片外晶振),SJA1000的CLKOUT引脚接人mcu的5 S3 j' y$ j2 ~9 `+ c$ w$ Z/ r: Y9 v
XTAL1引脚。4 f; \ ^8 [# F; s
由于CAN总线速率与RS -232接口速率并不相同,因此本% I9 h e5 W; B
设计中增加了片外RAM芯片6116,用作转换双方的数据缓冲
9 h+ z. |: C, d4 W" E; j区。设计中使用P2.7接反向器连接61 16的片选端,所以接口转, e, c8 H' ? V
换电路中的片外RAM的起始地址实际上应为0X8000。
; L/ |0 ^" @# v0 T% w' C8 ~3 c4 q+ U+ |6 P& B# ]! r
( K: V; C! n+ F2 E5 S7 J7 q* M; f" q1 Z* r
附件下载:
8 b* a) u6 d; ^5 i6 L) G
1 _; e5 C0 M5 o4 X4 ? |
|