2024年5月8日发(作者:冼自明)
第28卷第1期
2010年2月
贵州师范大学学报(自然科学版)
Journal of Guizhou Normal University(Natural Sciences)
Vol_28.No.1
Feb 2010
文章编号:1004--5570(2010)01—0I17—04
CAN总线单片机PIC18F258在汽车电子控制单元中的应用
王 义
(贵州师范大学物理与电子科学学院,贵州贵阳550001)
摘要:以集成CAN控制器的PIC18F258单片机为例,介绍了汽车电子控制单元的设计方法,给出了系统主要硬
件结构和软件设计流程。该电路具有硬件设计简单、可靠性高、实时性强等特点,为基于PIC18F258微处理器的
CAN通信电子控制单元的开发提供了一定的科学依据。
关键词:汽车网络;CAN总线;PIC18F258;电子控制单元
文献标识码:A 中图分类号:TP273
Application of CAN bus in vehicle electronic control system
with PIC 1 8 F258 microcontroller
WANG Yi
(School of Physics and Eleetronies,Guizhou Normal University,Guiyang,Guizhou 550001,China)
Abstract:This paper proposes a method of electronic control units design with the background of
PIC18F258 microeontroller.Hardware structure and flow chaa of software axe presented.In this cir-
cuit,the hardware design is easy,the reliability is high and real time is good.
Key words:automobile network;CAN bus;PIC 1 8 F258;ECU
不利于系统集成化。本文以Mierochip公司的内部
0 引言
CAN(Controller Area Network)属于总线式串
集成CAN模块的PICI8F258单片机为核心,介绍
CAN总线系统电子控制单元的硬件电路设计及软
件程序设计流程。由于PIC18F258单片机对CAN
收发器PCA82C250进行数据操作时只需要TXD、
行通信网络,以其高性能、高可靠性以及灵活的设
计越来越受到人们的重视,应用范围也从最初的汽
车电子控制逐步扩展到工业控制的各个领域,已经
形成了国际标准(/SO11898),成为最有发展前途
RXD两条数据线,这样就大大简化了硬件电路的
设计,提高了系统的可靠性。
的现场总线之一。目前,在CAN系统设计中,使用
最多的是单片机外挂独立的CAN控制器,如Phil.
ips公司的PCA82C200、SJA1000以及Intel公司的
1 CAN总线的技术性能
CAN总线是由德国BOSCH公司为了解决汽
车中众多的控制和数据交换问题而开发出的一种
82526、82527等芯片。采用此类芯片的设计方案
收稿日期:2009一l1—28
基金项目:贵州省科技厅工业攻关(黔科合GY字[2008]3023)资助项目
作者简介:王义(1957一),男,教授,研究方向:电路与系统、集成电路设计。
117
贵州师范大学学报(自然科学版) 第28卷
串行数据通信总线。CAN总线硬件连接简单,有
良好的可靠性、实时性和性价比,简单实用,网络成
本低,特别适用于汽车的工作环境和电磁辐射强、
震动大的场合。其信号传输介质可以是双绞线、同
轴电缆或光导纤维。CAN可提供高达1Mbps的数
(1)支持CAN协议CAN2.0A、CAN2.0B;
(2)支持标准帧、扩展帧、过载帧、错误帧等;
(3)2个具有优先级的接受缓冲器,3个具有
优先级的发送缓冲器;
(4)6个接收过滤器,2个对应优先级高的接
收缓冲器,其余4个对应于优先级低的接收缓冲
器;
据传输率(此时通信距离最长为40m),直接传输
最远可达10kn(速率5kibps以下)。CAN总线通
信接口集成了CAN协议的物理层和数据链路层功 (5)2个屏蔽过滤器,分别对应于2个不同的
能,可完成对通信数据的帧处理,包括填充、数据块
编码、循环冗余检验、优先级判别等。CAN协议的
一
个最大特点是废除了传统的站地址编码,而对通
信数据块进行编码。采用这种方法可以使网络内
的节点个数在理论上不受限制 J,其应用范围也
从最初的汽车电子控制逐步扩展到工业控制的各
个领域,有广阔的发展前景。
2 PIC18F258集成CAN微控制器的
特点
PIC18F258是美国Microchip公司生产的具有
CAN总线接口的高性能PIC系列单片机,由于其
超小型、低功耗、低成本、多品种的特点以及不再需
要外接CAN控制器,其应用范围十分广泛。
PIC18F258是集成了CAN模块的微控制器有着先
进的精简指令集构架、增强型内核、32级堆栈,片
内具有Flash程序存储器、EEROM数据存储器、自
编程功能、在线调试器(ICD)和多种内部、外部中
断源,并采用了程序和数据空间完全分开的“哈
佛”结构。这种结构大大降低了PIC微控制器的
总体成本,同时提高了运行效率。其引脚定义如图
1所示 引。
1、 26
RB7,PCD
2 27
RB6/PGC
3 26 RB5,PGM
4 25
RB4
5善善 24
RB3/CANRX
RB2/CANTX/lNT2
RBl/NT1
8 罱罱21
RB0/N1、0
9 20 VDD
l0 。o o。 19
、
11 18
R ̄7/RX/DT
l2 l7
RC6,I CK
13 l6 RC5,SDO
l4 15
RC4/SDUSDA
图1 PIC18F258单片机PDIP封装引脚图
Fig.1 PIC18F258 mieroeontroller package diagram
PIC18F258的CAN模块遵循CAN总线协议,
同时也有自己的特点。主要包括 引:
l18
接受缓冲器
(6)有5中工作模式设定。
CAN模块符合CAN1.2、CAN2.0A、CAN2.0B
标准。3个发送缓冲区根据需要可以分别修改
TXRnCON(n为0,1,2)的TXPR1、TXPR0位来设
定4个不同的优先级。如果2个发送缓冲区有相
同的优先级,那么发送缓冲区号码高的具有高优先
级。CAN模块还配置了2个接收缓冲区、6个过滤
器和2个接收屏蔽过滤器。RXBO对应于接收过
滤器RXF0、RXF1,屏蔽过滤器RXM0。RXB1对应
着接收过滤器RXF2、RXF3、RXF4、RXF5,屏蔽过
滤器RXM1。除了这2个接收缓冲器外,
PIC18F258还配置了一个MAB(报文集合器),
MAB接收总线上的全部报文。
3 CAN通信系统硬件电路设计
CAN通信系统硬件电路主要由3部分组成:
PIC18F258单片机、6N137高速光电耦合器、
PCA82C250总线收发器。电路原理如图2所示。
PIC18F258单片机是CAN总线接口电路的核
心,主要完成CAN总线上数据的发送和接收,实现
串行数据的分解及组合,保证通信的正常畅通。
PCA82C250是Philips公司的CAN总线接口芯片,
是CAN控制器与物理总线之间的接口,提供对总
线的差分发送和接收的能力。它与ISO1 1898标准
完全兼容,有3种不同的工作方式即高速、斜率控
制和待机,可以根据实际情况选择,在本方案中选
择高速工作方式。该芯片引脚少,使用简单。CAN
总线采用PCA82C250芯片作为与总线之间的接
口,PCA82C250的CANH、CANL的引脚各自通过
一
个电阻与CAN总线相连,电阻可以起到一定的
限流作用,保护PCA82C250免受过流的冲击。另
外,CANH和CANL与地之间并联两个小电容,可
以起到滤除总线上的高频干扰和防电磁辐射的能
力。光电耦合器采用6N137高速光电耦合器。为
第1期 王
Vcc
义:CAN总线单片机PIC18F258在汽车电子控制单元中的应用
Vcc
Vcc
TXCAN
390
— 二]一 IN
rAN.
EN
J 39o
—
——1一
VDDoUT
GND
1oo
n
TXD CANH
)
. JI RXD CANL ——口
Vref Rq
-
一
T
Vcc GND 一门; = =: \J
n
GND
RXCAN
7-100
^390 EN IN 390
VCC
OUT VDD
: 3 4ob7 36p 4007
’
T100n
图2 PIC18F258通信系统电路原理图
Fig.2 PIC18F258 communication system circuit diagram
了提高系统的抗干扰能力和传输信号的能力,采用
6N137高速光电耦合电路可以很好地实现总线上
节点之间的电气隔离。高速光电耦合器的两个电
源VCC和VCC’必须采用电源隔离电路进行完全
隔离。
将CAN模块设置为配置模式
将RB3设置为输入、RB2设置为输出
I』.
4 CAN通信系统的软件设计流程
软件设计是系统设计的关键。使用开发软件
MPLAB IDE,仿真器ICD 2,以及灵活简便的c语
言。为了提高可靠性和可理解性,内部软件设计采
用了模块结构,主要包括CAN节点的初始化子程
序、数据发送子程序、数据接收子程序3部分。如
果在实际应用中进行CAN通信,还应有采样子程
序、故障诊断子程序和终端子程序等。
初始化子程序是系统设计工作中极为重要的
部分,它是CAN总线系统正常工作的前提,关系到
一N
设置波特率 J
设置接收寄存器和接收屏蔽寄存器
l 设置接收、发送控制寄存器
l
整个CAN系统能否正常工作。因此,初始化设计
是一个重点,主要包括CAN模块工作方式的配置、
接收滤波器的设置、接收屏蔽寄存器设置、波特率
参数设置、发送优先级设置和中断允许寄存器设置
等。初始化子程序流程如图3所示。
数据发送子程序。数据发送是由CAN控制
将cAN模块设置为标准模式 I
主: N
器根据CAN总线协议自动完成。数据发送时采用
查询控制方式,将需要发送的信息帧送到发送缓冲
器,并设置好“发送请求标识位”于命令寄存器中,
启动发送即可。图4是CAN节点数据发送子程序
流程图。
图3初始化子程序流程图
Fig.3 F/owchart of initialization
制器自动完成。接收程序只需从接收缓冲器中读
取接收数据,再进行相应的处理即可。接收数据采
数据接收与数据发送相类似,也是由CAN控
用中断方式,当每接收到一条信息时,该信息就会
】】9
贵州师范大学学报(自然科学版) 第28卷
5 结束语
CAN总线以其高性能、高可靠性以及独特的
设计,已经在先进的汽车上得到了广泛应用。国外
在这方面的研究越来越多也越来越成熟,而国内的
研究应用起步较晚。基于PIC18F258的CAN总线
电子控制单元具有集成度高、性能稳定、抗电磁干
图4数据发送子程序流程图
Fig.4 Flow chart of data transmission
通过验收滤波器,产生一个接收中断,然后将接收
到的数据从接收寄存器中转移到指定的存储区域
内并保存起来,最后是中断返回。图5是CAN节
点数据接收子程序流程图。
CAN中断程序入口
接收ID寄存器数据
从接收缓冲区中读取数据
释放接收缓冲区
退出中断、返回
图5数据接收子程序流程图
iFg.5 Flow chart ofdata receive
120
扰能力强的特点。本文从硬件和软件两个方面对
集成式内嵌CAN控制器PIC18F258进行了介绍,
给出了PIC18F258的应用外围电路和软件设计流
程图,对于CAN总线系统开发有一定的实际应用
价值。
参考文献:
[1]杜尚丰,曹晓钟,徐津.CAN总线测控技术及其应用
[M].北京:电子工业出版社,2007.
[2]Microchip PIC18FXX8 Data Sheet.28/40一Pin Hish—
Performance,Enhanced Flash Microcontrollers with CAN
Module.
[3 白忠友.基于PIC18F248的CAN系统设计[J].中国仪
器仪表,2004(11):10-12.
[4]孙韬,刘宗行,吴斌.基于CAN总线构成的分布式通信
网络的应用[J].重庆大学学报(自然科学版),2003,
26(1):69-72.
[5]肖朝晖,谭进,李山.混合动力汽车中CAN总线技术的
应用[J].重庆大学学报(自然科学版),2005,28(6):
68-7O.
2024年5月8日发(作者:冼自明)
第28卷第1期
2010年2月
贵州师范大学学报(自然科学版)
Journal of Guizhou Normal University(Natural Sciences)
Vol_28.No.1
Feb 2010
文章编号:1004--5570(2010)01—0I17—04
CAN总线单片机PIC18F258在汽车电子控制单元中的应用
王 义
(贵州师范大学物理与电子科学学院,贵州贵阳550001)
摘要:以集成CAN控制器的PIC18F258单片机为例,介绍了汽车电子控制单元的设计方法,给出了系统主要硬
件结构和软件设计流程。该电路具有硬件设计简单、可靠性高、实时性强等特点,为基于PIC18F258微处理器的
CAN通信电子控制单元的开发提供了一定的科学依据。
关键词:汽车网络;CAN总线;PIC18F258;电子控制单元
文献标识码:A 中图分类号:TP273
Application of CAN bus in vehicle electronic control system
with PIC 1 8 F258 microcontroller
WANG Yi
(School of Physics and Eleetronies,Guizhou Normal University,Guiyang,Guizhou 550001,China)
Abstract:This paper proposes a method of electronic control units design with the background of
PIC18F258 microeontroller.Hardware structure and flow chaa of software axe presented.In this cir-
cuit,the hardware design is easy,the reliability is high and real time is good.
Key words:automobile network;CAN bus;PIC 1 8 F258;ECU
不利于系统集成化。本文以Mierochip公司的内部
0 引言
CAN(Controller Area Network)属于总线式串
集成CAN模块的PICI8F258单片机为核心,介绍
CAN总线系统电子控制单元的硬件电路设计及软
件程序设计流程。由于PIC18F258单片机对CAN
收发器PCA82C250进行数据操作时只需要TXD、
行通信网络,以其高性能、高可靠性以及灵活的设
计越来越受到人们的重视,应用范围也从最初的汽
车电子控制逐步扩展到工业控制的各个领域,已经
形成了国际标准(/SO11898),成为最有发展前途
RXD两条数据线,这样就大大简化了硬件电路的
设计,提高了系统的可靠性。
的现场总线之一。目前,在CAN系统设计中,使用
最多的是单片机外挂独立的CAN控制器,如Phil.
ips公司的PCA82C200、SJA1000以及Intel公司的
1 CAN总线的技术性能
CAN总线是由德国BOSCH公司为了解决汽
车中众多的控制和数据交换问题而开发出的一种
82526、82527等芯片。采用此类芯片的设计方案
收稿日期:2009一l1—28
基金项目:贵州省科技厅工业攻关(黔科合GY字[2008]3023)资助项目
作者简介:王义(1957一),男,教授,研究方向:电路与系统、集成电路设计。
117
贵州师范大学学报(自然科学版) 第28卷
串行数据通信总线。CAN总线硬件连接简单,有
良好的可靠性、实时性和性价比,简单实用,网络成
本低,特别适用于汽车的工作环境和电磁辐射强、
震动大的场合。其信号传输介质可以是双绞线、同
轴电缆或光导纤维。CAN可提供高达1Mbps的数
(1)支持CAN协议CAN2.0A、CAN2.0B;
(2)支持标准帧、扩展帧、过载帧、错误帧等;
(3)2个具有优先级的接受缓冲器,3个具有
优先级的发送缓冲器;
(4)6个接收过滤器,2个对应优先级高的接
收缓冲器,其余4个对应于优先级低的接收缓冲
器;
据传输率(此时通信距离最长为40m),直接传输
最远可达10kn(速率5kibps以下)。CAN总线通
信接口集成了CAN协议的物理层和数据链路层功 (5)2个屏蔽过滤器,分别对应于2个不同的
能,可完成对通信数据的帧处理,包括填充、数据块
编码、循环冗余检验、优先级判别等。CAN协议的
一
个最大特点是废除了传统的站地址编码,而对通
信数据块进行编码。采用这种方法可以使网络内
的节点个数在理论上不受限制 J,其应用范围也
从最初的汽车电子控制逐步扩展到工业控制的各
个领域,有广阔的发展前景。
2 PIC18F258集成CAN微控制器的
特点
PIC18F258是美国Microchip公司生产的具有
CAN总线接口的高性能PIC系列单片机,由于其
超小型、低功耗、低成本、多品种的特点以及不再需
要外接CAN控制器,其应用范围十分广泛。
PIC18F258是集成了CAN模块的微控制器有着先
进的精简指令集构架、增强型内核、32级堆栈,片
内具有Flash程序存储器、EEROM数据存储器、自
编程功能、在线调试器(ICD)和多种内部、外部中
断源,并采用了程序和数据空间完全分开的“哈
佛”结构。这种结构大大降低了PIC微控制器的
总体成本,同时提高了运行效率。其引脚定义如图
1所示 引。
1、 26
RB7,PCD
2 27
RB6/PGC
3 26 RB5,PGM
4 25
RB4
5善善 24
RB3/CANRX
RB2/CANTX/lNT2
RBl/NT1
8 罱罱21
RB0/N1、0
9 20 VDD
l0 。o o。 19
、
11 18
R ̄7/RX/DT
l2 l7
RC6,I CK
13 l6 RC5,SDO
l4 15
RC4/SDUSDA
图1 PIC18F258单片机PDIP封装引脚图
Fig.1 PIC18F258 mieroeontroller package diagram
PIC18F258的CAN模块遵循CAN总线协议,
同时也有自己的特点。主要包括 引:
l18
接受缓冲器
(6)有5中工作模式设定。
CAN模块符合CAN1.2、CAN2.0A、CAN2.0B
标准。3个发送缓冲区根据需要可以分别修改
TXRnCON(n为0,1,2)的TXPR1、TXPR0位来设
定4个不同的优先级。如果2个发送缓冲区有相
同的优先级,那么发送缓冲区号码高的具有高优先
级。CAN模块还配置了2个接收缓冲区、6个过滤
器和2个接收屏蔽过滤器。RXBO对应于接收过
滤器RXF0、RXF1,屏蔽过滤器RXM0。RXB1对应
着接收过滤器RXF2、RXF3、RXF4、RXF5,屏蔽过
滤器RXM1。除了这2个接收缓冲器外,
PIC18F258还配置了一个MAB(报文集合器),
MAB接收总线上的全部报文。
3 CAN通信系统硬件电路设计
CAN通信系统硬件电路主要由3部分组成:
PIC18F258单片机、6N137高速光电耦合器、
PCA82C250总线收发器。电路原理如图2所示。
PIC18F258单片机是CAN总线接口电路的核
心,主要完成CAN总线上数据的发送和接收,实现
串行数据的分解及组合,保证通信的正常畅通。
PCA82C250是Philips公司的CAN总线接口芯片,
是CAN控制器与物理总线之间的接口,提供对总
线的差分发送和接收的能力。它与ISO1 1898标准
完全兼容,有3种不同的工作方式即高速、斜率控
制和待机,可以根据实际情况选择,在本方案中选
择高速工作方式。该芯片引脚少,使用简单。CAN
总线采用PCA82C250芯片作为与总线之间的接
口,PCA82C250的CANH、CANL的引脚各自通过
一
个电阻与CAN总线相连,电阻可以起到一定的
限流作用,保护PCA82C250免受过流的冲击。另
外,CANH和CANL与地之间并联两个小电容,可
以起到滤除总线上的高频干扰和防电磁辐射的能
力。光电耦合器采用6N137高速光电耦合器。为
第1期 王
Vcc
义:CAN总线单片机PIC18F258在汽车电子控制单元中的应用
Vcc
Vcc
TXCAN
390
— 二]一 IN
rAN.
EN
J 39o
—
——1一
VDDoUT
GND
1oo
n
TXD CANH
)
. JI RXD CANL ——口
Vref Rq
-
一
T
Vcc GND 一门; = =: \J
n
GND
RXCAN
7-100
^390 EN IN 390
VCC
OUT VDD
: 3 4ob7 36p 4007
’
T100n
图2 PIC18F258通信系统电路原理图
Fig.2 PIC18F258 communication system circuit diagram
了提高系统的抗干扰能力和传输信号的能力,采用
6N137高速光电耦合电路可以很好地实现总线上
节点之间的电气隔离。高速光电耦合器的两个电
源VCC和VCC’必须采用电源隔离电路进行完全
隔离。
将CAN模块设置为配置模式
将RB3设置为输入、RB2设置为输出
I』.
4 CAN通信系统的软件设计流程
软件设计是系统设计的关键。使用开发软件
MPLAB IDE,仿真器ICD 2,以及灵活简便的c语
言。为了提高可靠性和可理解性,内部软件设计采
用了模块结构,主要包括CAN节点的初始化子程
序、数据发送子程序、数据接收子程序3部分。如
果在实际应用中进行CAN通信,还应有采样子程
序、故障诊断子程序和终端子程序等。
初始化子程序是系统设计工作中极为重要的
部分,它是CAN总线系统正常工作的前提,关系到
一N
设置波特率 J
设置接收寄存器和接收屏蔽寄存器
l 设置接收、发送控制寄存器
l
整个CAN系统能否正常工作。因此,初始化设计
是一个重点,主要包括CAN模块工作方式的配置、
接收滤波器的设置、接收屏蔽寄存器设置、波特率
参数设置、发送优先级设置和中断允许寄存器设置
等。初始化子程序流程如图3所示。
数据发送子程序。数据发送是由CAN控制
将cAN模块设置为标准模式 I
主: N
器根据CAN总线协议自动完成。数据发送时采用
查询控制方式,将需要发送的信息帧送到发送缓冲
器,并设置好“发送请求标识位”于命令寄存器中,
启动发送即可。图4是CAN节点数据发送子程序
流程图。
图3初始化子程序流程图
Fig.3 F/owchart of initialization
制器自动完成。接收程序只需从接收缓冲器中读
取接收数据,再进行相应的处理即可。接收数据采
数据接收与数据发送相类似,也是由CAN控
用中断方式,当每接收到一条信息时,该信息就会
】】9
贵州师范大学学报(自然科学版) 第28卷
5 结束语
CAN总线以其高性能、高可靠性以及独特的
设计,已经在先进的汽车上得到了广泛应用。国外
在这方面的研究越来越多也越来越成熟,而国内的
研究应用起步较晚。基于PIC18F258的CAN总线
电子控制单元具有集成度高、性能稳定、抗电磁干
图4数据发送子程序流程图
Fig.4 Flow chart of data transmission
通过验收滤波器,产生一个接收中断,然后将接收
到的数据从接收寄存器中转移到指定的存储区域
内并保存起来,最后是中断返回。图5是CAN节
点数据接收子程序流程图。
CAN中断程序入口
接收ID寄存器数据
从接收缓冲区中读取数据
释放接收缓冲区
退出中断、返回
图5数据接收子程序流程图
iFg.5 Flow chart ofdata receive
120
扰能力强的特点。本文从硬件和软件两个方面对
集成式内嵌CAN控制器PIC18F258进行了介绍,
给出了PIC18F258的应用外围电路和软件设计流
程图,对于CAN总线系统开发有一定的实际应用
价值。
参考文献:
[1]杜尚丰,曹晓钟,徐津.CAN总线测控技术及其应用
[M].北京:电子工业出版社,2007.
[2]Microchip PIC18FXX8 Data Sheet.28/40一Pin Hish—
Performance,Enhanced Flash Microcontrollers with CAN
Module.
[3 白忠友.基于PIC18F248的CAN系统设计[J].中国仪
器仪表,2004(11):10-12.
[4]孙韬,刘宗行,吴斌.基于CAN总线构成的分布式通信
网络的应用[J].重庆大学学报(自然科学版),2003,
26(1):69-72.
[5]肖朝晖,谭进,李山.混合动力汽车中CAN总线技术的
应用[J].重庆大学学报(自然科学版),2005,28(6):
68-7O.