|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
2 k. T! t" D3 ^5 z" n0 J" e
摘要:本文完成了基于单片机控制的CAN与RS-232转换器的研究与设计,设计了AT89C51 单片机对RS-232接口和CAN
1 K9 w+ ^4 Y, R4 M模块的控制,解决了CAN总线与RS-232 接口数据通信速率以及通信帧格式不同的技术,实现了RS-232接口数据与CAN总0 P+ M1 [' e, x, e
线数据的传输。# @$ X+ H2 \+ [8 c7 j' @! r% H
关键词:单片机; CAN总线; RS- -232
' e `0 K! o r1 x' U# \4 p1概述# c) T& o' @$ T W. O) I' R- P1 Y" y* V
CAN(Controller Area Network)总线是德国BOSCH公司为解4 i) k! \8 o% d2 @8 S" T6 g7 C5 a
决现代汽车中众多控制与测试之间的数据交换开发的-种串& V% N4 l/ y8 [% D% X1 I
行数据通信协议,是一种多主方式的串行通信总线。CAN总线
1 H3 V7 T: \7 j* o! i3 L& U是一种开放式数字化、多点通信的控制系统局域网,具有通信
# B/ x$ C$ B; ~ H速率高、传输时间短传输距离远纠错能力强控制简单、扩展 z" ^) m6 e7 i/ f$ z
能力强以及性价比高等特点,是目前国际上应用最广泛的现场3 f O. G: q) I+ O" ?& N
总线之一。0 s; V+ y3 O' d1 U5 L+ D
基于CAN总线的CAN控制器具有完成CAN总线通信协. |5 z9 T/ M& B+ P e. e& e
议所要求的全部必要功能,因此CAN控制器与其它微处理器的% V+ u0 N7 M5 {; \+ G: ~1 O& c# v
接口成为设计CAN总线系统的首要工作。实际中很多设备带9 q& m; S) e3 w5 m$ _- D J
有RS- -232接口,为了方便具有RS- -232 接口的设备与CAN总.: [$ {0 g1 t' r7 d, A
线的数据通信,本文完成了基于单片机控制的CAN总线与RS-
: r( \9 K% ?( {1 P, ~232转换器电路设计和软件设计,实现了CAN总线数据与RS-
( \1 ]- U2 [8 v) o0 G; v9 j6 G232接口设备的数据传输。
. ]( f7 I; M8 c" I% C& f2基于单片机控制的CAN总线与2 ]+ b* L1 @: G. @; V! }9 u+ U$ g
RS--232转换器电路设计/ b! h6 |+ c1 M0 {
CAN总线与RS- 232转换器电路包括:主控制模块、RS- -232" ?/ J/ ?* C8 M
接口转换电路和CAN控制模块3个主要部分。# L6 |2 \4 t) V6 w! a
主控制模块的功能是处理CAN总线以及RS- -232接口的0 U4 e( J t8 D5 ^
数据通信和控制,本设计应用AT89C51完成对转换器各个接口
& f, [; m2 k9 G& L2 r, ~$ x4 t的控制,实现CAN总线和RS- -232接口两种协议数据帧的转换,
% e8 X, Q' }* s% g# K$ I使用带有SPI总线接口的X25045实现硬件看门狗功能。主控1 |( c6 T/ w% ?+ l+ y. F5 W. b
模块电路如图1所示。
- ^$ ?& _/ R0 V2 ?! U2 Q' xRS- -232接口电路由MAX232芯片构成,实现将单片机串口
S: g8 f4 k1 o' Q" }( ]% \的TL电平与RS -232电平的相互转换,完成RS- -232接口信息
! x) z* p2 Z* @# G# L( e
5 n9 r! R' S* R的输人输出传输。4 Z) _. Q) l2 y% |, X2 z
CAN控制器模块,主要完成CAN协议的物理层和数据链
" E# E2 _& C! } B" x4 ], h. j路层协议的实现。其中物理接口采用PCA82C250芯片实现物! A. I6 h5 H2 ]4 w2 x
理层的电平转换和传输。CAN控制器使用SJA1000芯片,完成: n' ?% Q8 _( M7 S* S! S' {9 ]; Q
数据链路层功能,实现CAN总线信息的输人输出传输。4 }% a9 o5 \( ^: R
AT89C51是CAN总线与RS--232转换器的控制器,提供以* a, O6 X, L+ ^$ |7 K2 N6 C
下标准功能:4k字节Flash 闪速存储器,1000次可擦写周期,三/ r$ ` i: w/ {. B9 y+ A/ u
级加密程序存储器,128字节内部RAM,32个I/0口线,两个16! ?& Q% |" G) n; p6 E& p
位定时/计数器,-个5向量中断结构,-一个全双工串行通信口,* E8 g' |9 N6 c, d' x- g
片内振荡器及时钟电路。同时,支持两种软件可选的节电T.作模3 ~0 O; t( u& Z; R, t$ k# V* G
式。空闲方式停止CPU的工作,但允许RAM、定时/计数器、窜行
+ Q* ?# w# _. w4 U通信口及中断系统继续工作。掉电方式保存RAM中的内容,但
, z6 I; ~4 g% T& G. e/ m: I$ J/ Z) r振荡器停止工作并禁止所有部件工作直到下一个硬件复位。0 Q8 J- }7 A* D# r5 W
AT89C51使用的晶振信号由SJA1000提供(SJA1000用6 I* g- @5 e% V5 c- t% O1 ]
24MHz的片外晶振),SJA1000的CLKOUT引脚接人mcu的0 S! n% V5 _2 X( G' x# b+ T" Y& Y
XTAL1引脚。
+ ~0 d7 M: }. X/ ^由于CAN总线速率与RS -232接口速率并不相同,因此本( T6 ?8 W3 C$ N5 l. y. v
设计中增加了片外RAM芯片6116,用作转换双方的数据缓冲
* }. Z7 }0 d9 }* {+ f, }区。设计中使用P2.7接反向器连接61 16的片选端,所以接口转
1 J+ [: x0 y) H+ }8 Z+ ?, z换电路中的片外RAM的起始地址实际上应为0X8000。
1 q @+ Q& i( Z; m# ?. O* A+ F7 w- {; f* Z0 n6 U
5 ? [- g1 Q6 |& D; E K/ R
6 R2 _: Q- [) w u$ K
附件下载:
7 {, C# d! Q0 F
" X. h% x. Y, y9 n |
|