|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" Z2 n T5 g* z {% G1 U
摘要:本文完成了基于单片机控制的CAN与RS-232转换器的研究与设计,设计了AT89C51 单片机对RS-232接口和CAN
* P0 ?, K8 H6 D/ c$ S% ]模块的控制,解决了CAN总线与RS-232 接口数据通信速率以及通信帧格式不同的技术,实现了RS-232接口数据与CAN总
% F) R' I6 G/ o6 {9 p. x线数据的传输。
' w' q2 L$ q8 \$ j6 O关键词:单片机; CAN总线; RS- -232& j+ ^5 I+ R, \: j- l% ?* Q
1概述3 f) K0 T. d1 s/ o$ a( M: j
CAN(Controller Area Network)总线是德国BOSCH公司为解
- I% J1 j5 ]# B0 Z5 i# \: f1 |! z决现代汽车中众多控制与测试之间的数据交换开发的-种串
. `: `/ w6 _( L8 z行数据通信协议,是一种多主方式的串行通信总线。CAN总线0 z% z- U$ R# _8 ?8 u8 [/ F0 G
是一种开放式数字化、多点通信的控制系统局域网,具有通信
& p- M" @9 P. f2 Z/ a6 R! ^1 Y" x速率高、传输时间短传输距离远纠错能力强控制简单、扩展& u$ b1 z* q) u& M# h' [
能力强以及性价比高等特点,是目前国际上应用最广泛的现场, x2 r# k# J+ J( @) d3 c4 P
总线之一。9 m0 Q$ \% x1 k
基于CAN总线的CAN控制器具有完成CAN总线通信协
& Q# Q! h6 i% d5 I议所要求的全部必要功能,因此CAN控制器与其它微处理器的9 T: D- o6 R/ L. K8 u5 q+ `
接口成为设计CAN总线系统的首要工作。实际中很多设备带& I, h. z. L0 e2 ]8 J3 L
有RS- -232接口,为了方便具有RS- -232 接口的设备与CAN总.
4 [% e# z: W9 T- S. O1 ]5 R% \9 Y5 i3 V线的数据通信,本文完成了基于单片机控制的CAN总线与RS-) q& C, K9 n: |! y ?- R; `
232转换器电路设计和软件设计,实现了CAN总线数据与RS-
0 _' o7 p U* a6 T; m) |; H* F1 P232接口设备的数据传输。$ b* s" j- S9 P
2基于单片机控制的CAN总线与7 S. D. J. p) n% h
RS--232转换器电路设计
/ \' I/ w- d* t% ]- [/ S% z3 R2 mCAN总线与RS- 232转换器电路包括:主控制模块、RS- -232( f8 y+ ?; k2 N3 w! F
接口转换电路和CAN控制模块3个主要部分。" ?6 j* E7 `* q+ s z4 h
主控制模块的功能是处理CAN总线以及RS- -232接口的) z9 v9 r3 Z! u7 O& i8 t; ~
数据通信和控制,本设计应用AT89C51完成对转换器各个接口 \ [2 A9 C- y& ]& y3 g& K
的控制,实现CAN总线和RS- -232接口两种协议数据帧的转换,* q! Y; K( O& X1 o
使用带有SPI总线接口的X25045实现硬件看门狗功能。主控2 S' u6 z& X! u) q
模块电路如图1所示。1 q# t* i, R) k; N" X
RS- -232接口电路由MAX232芯片构成,实现将单片机串口# X* P/ J% e- t# d. Y4 ~! ^% J# D
的TL电平与RS -232电平的相互转换,完成RS- -232接口信息0 a% C& N) p: O( e9 r! ~1 Q7 q
- M+ A2 K4 N) u( E2 B
的输人输出传输。
" n: D1 z* J: w% h3 |CAN控制器模块,主要完成CAN协议的物理层和数据链
* {' f" A$ W$ N5 b% X路层协议的实现。其中物理接口采用PCA82C250芯片实现物
9 F% x- A( |6 U6 p$ k2 J1 K理层的电平转换和传输。CAN控制器使用SJA1000芯片,完成1 A! h6 D9 T4 i+ V' C/ q- q
数据链路层功能,实现CAN总线信息的输人输出传输。
. n' X; o8 j) w$ A0 ?+ X1 j, C- tAT89C51是CAN总线与RS--232转换器的控制器,提供以4 L# B2 P. x: p) J
下标准功能:4k字节Flash 闪速存储器,1000次可擦写周期,三
: l3 P9 H; C9 {" t级加密程序存储器,128字节内部RAM,32个I/0口线,两个164 h9 `! N% h, G5 i: ^+ j
位定时/计数器,-个5向量中断结构,-一个全双工串行通信口,
4 x9 L2 c9 {/ U' M+ f+ ?6 |& e片内振荡器及时钟电路。同时,支持两种软件可选的节电T.作模! z, z! N! n3 e, J
式。空闲方式停止CPU的工作,但允许RAM、定时/计数器、窜行
2 r5 F$ ]: }+ w4 S+ n+ h) R+ C- E通信口及中断系统继续工作。掉电方式保存RAM中的内容,但( j0 J1 p: N0 a
振荡器停止工作并禁止所有部件工作直到下一个硬件复位。3 I( q" q5 b0 y( a m" ^
AT89C51使用的晶振信号由SJA1000提供(SJA1000用- H! G9 ]4 }. } i7 _( F) j
24MHz的片外晶振),SJA1000的CLKOUT引脚接人mcu的
5 Z- C; v3 G8 Q% xXTAL1引脚。 k1 A% [% j6 K
由于CAN总线速率与RS -232接口速率并不相同,因此本
# p/ k+ \$ ~+ c$ b7 z1 `8 g设计中增加了片外RAM芯片6116,用作转换双方的数据缓冲
$ m$ O# l6 K3 t% u4 |区。设计中使用P2.7接反向器连接61 16的片选端,所以接口转# E: @; H; v- {/ ^* s+ V( k$ a
换电路中的片外RAM的起始地址实际上应为0X8000。% W1 R% S1 E2 M% L
* N$ O& ~) l5 ?" E! }8 U; T$ `8 J: h3 a, A5 H
: f3 W- Y- c9 V) b- C3 G4 L
附件下载:
+ i7 M8 e9 `: M# A2 b3 e, [0 J; l3 z1 y9 l5 T$ Y: F
|
|