|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
0 f2 m# T* ]5 l* x) V: }摘要:本文完成了基于单片机控制的CAN与RS-232转换器的研究与设计,设计了AT89C51 单片机对RS-232接口和CAN. ~: A, c" F) y6 Q( n$ l1 H
模块的控制,解决了CAN总线与RS-232 接口数据通信速率以及通信帧格式不同的技术,实现了RS-232接口数据与CAN总9 [: \: E! u: F# O3 h
线数据的传输。& ]. _5 q/ v S. {* k
关键词:单片机; CAN总线; RS- -232
8 m# U, f, z6 e0 l9 s1概述
' ?9 A8 g6 `- N ?% V+ S. ^; ^CAN(Controller Area Network)总线是德国BOSCH公司为解3 F0 u0 E3 R% e$ K& H0 U
决现代汽车中众多控制与测试之间的数据交换开发的-种串/ w) X$ l9 ?* O' {( i6 R; g" Q
行数据通信协议,是一种多主方式的串行通信总线。CAN总线/ ?& ^8 \4 f9 J9 S% p4 t" F* c
是一种开放式数字化、多点通信的控制系统局域网,具有通信
: Z/ ?$ n& R2 e: q0 ]/ P速率高、传输时间短传输距离远纠错能力强控制简单、扩展0 U$ L% e0 s/ {, A1 ]9 E- ]/ F
能力强以及性价比高等特点,是目前国际上应用最广泛的现场
6 Y" Q+ s1 m, E @$ Y. [0 O总线之一。
( H" E# p: R' a. ~2 g基于CAN总线的CAN控制器具有完成CAN总线通信协
0 X4 J! _5 H& z议所要求的全部必要功能,因此CAN控制器与其它微处理器的5 O- D6 U& J( r9 E) U2 w; d
接口成为设计CAN总线系统的首要工作。实际中很多设备带
1 V4 d& Y5 q6 n6 B% }有RS- -232接口,为了方便具有RS- -232 接口的设备与CAN总.+ w$ G" i$ v) Y0 h6 ]& P& f5 y
线的数据通信,本文完成了基于单片机控制的CAN总线与RS-
* `$ s" L8 y/ |' n/ Z. w N* [ y; ]232转换器电路设计和软件设计,实现了CAN总线数据与RS-- q& s4 M% S1 I. S
232接口设备的数据传输。9 v# |& x' p! B: U) F( A
2基于单片机控制的CAN总线与
! z) f8 |7 A5 e4 j: O, y3 dRS--232转换器电路设计& x D6 i$ H( I1 ~9 b% C
CAN总线与RS- 232转换器电路包括:主控制模块、RS- -232& C. `" j" ]4 V" r! j
接口转换电路和CAN控制模块3个主要部分。
1 S4 l% \7 Z) V7 c" ^) H主控制模块的功能是处理CAN总线以及RS- -232接口的
0 R0 X, R" N' p数据通信和控制,本设计应用AT89C51完成对转换器各个接口
5 W; @8 I0 ? ?' b, N( f3 T. x的控制,实现CAN总线和RS- -232接口两种协议数据帧的转换, l& ?9 f) d3 B0 ^) f5 I
使用带有SPI总线接口的X25045实现硬件看门狗功能。主控
9 Q, [. [; ~# |2 N- b# z模块电路如图1所示。
# T- E, N7 [( b$ qRS- -232接口电路由MAX232芯片构成,实现将单片机串口
: |4 @$ p# J$ U3 _# a" Z的TL电平与RS -232电平的相互转换,完成RS- -232接口信息4 }& U0 h- r3 E$ Q+ L0 A; n2 a
' i) U+ I& v( Q0 A的输人输出传输。3 X% {; u# \$ C& f+ m6 }* Z/ C
CAN控制器模块,主要完成CAN协议的物理层和数据链
2 D* L) h9 B v5 i路层协议的实现。其中物理接口采用PCA82C250芯片实现物
8 U: X4 K7 D& K理层的电平转换和传输。CAN控制器使用SJA1000芯片,完成
0 W7 |# W. J/ W9 Q6 I数据链路层功能,实现CAN总线信息的输人输出传输。6 K0 |' j$ g' H4 {; ^; V. u# y
AT89C51是CAN总线与RS--232转换器的控制器,提供以; K( g4 M9 b# [2 J+ q
下标准功能:4k字节Flash 闪速存储器,1000次可擦写周期,三
: D0 f5 d* X! H, r# q5 M级加密程序存储器,128字节内部RAM,32个I/0口线,两个16
! W/ Z! _2 k3 H0 O X* Y位定时/计数器,-个5向量中断结构,-一个全双工串行通信口,
; h* A' O6 {" d$ R$ n片内振荡器及时钟电路。同时,支持两种软件可选的节电T.作模$ J; [9 d8 i$ T! i8 s! U
式。空闲方式停止CPU的工作,但允许RAM、定时/计数器、窜行
5 o( D6 b! A& x2 v# K2 Y$ s通信口及中断系统继续工作。掉电方式保存RAM中的内容,但
9 r* L6 h3 e% ?+ o# s+ u振荡器停止工作并禁止所有部件工作直到下一个硬件复位。
/ o8 C! P4 t' B5 J2 Y3 gAT89C51使用的晶振信号由SJA1000提供(SJA1000用. B4 f# T* O1 s( g0 |3 M
24MHz的片外晶振),SJA1000的CLKOUT引脚接人mcu的8 k, d8 C. e/ a6 V7 A
XTAL1引脚。& k2 y* d! i* V, N5 {- }2 ~/ b* u
由于CAN总线速率与RS -232接口速率并不相同,因此本
5 r# M8 b$ S ]设计中增加了片外RAM芯片6116,用作转换双方的数据缓冲0 Y# a" T% N" D" i# g O; T
区。设计中使用P2.7接反向器连接61 16的片选端,所以接口转( T, h2 Y2 F& B- q4 ?
换电路中的片外RAM的起始地址实际上应为0X8000。# ]* [8 H. K. ^" ]$ Y( d) s7 K) l
, x9 x, X. @1 }! j2 H E
+ `4 S) \' s0 k e# ^, d5 B Z2 M: t3 _
附件下载:
) S# ~4 @% \4 O$ y" i
+ h, P, Q$ `: H M+ ~ |
|