double L= var . dblVal;
� ⋯
用数据库中的数据重新设置模具零件的尺寸,
实现尺寸驱动,相关代码为:
LPMODELDOC m M odelDoc= NU LL;
HRESU LT r es = T heAppl icat ion - >
GetSWApp ( ) - > get IAct iveDoc ( &m M odel-
Doc) ;
LPPA RT DOC m PartDoc= NU LL;
res= m ModelDoc- > QueryInterface ( IID
IPartDoc, ( LPVOID* ) &m PartDoc) ;
LPDIMENSION m Dimension= NULL;
long retv al ;
/ /访问有关尺寸
res= m M odelDoc- > IPar ameter ( auT ( "S
@ Sketch1@上模座. sldpr t") , & m Dimension) ;
m Dimension - > SetV alue2 ( S, 0,
&retv al) ; / /重新设置有关尺寸
� ⋯
m PartDoc- > EditRebuild( ) ; / /重建模型
d.加载成功后,在 Sol idWorks的主界面上将出
现�开发实例 菜单.单击�开发实例/模具库 菜单项
后, 将弹出一个对话框, 在此对话框输入主导参数
后,单击�确定 ,就可完成尺寸驱动造型.
9 结束语
采用 VC 开发 Sol idWorks 的方法程序代码设
计和编译链接等关键技术,对于二次开发的本地化、
专业化具有借鉴作用, 实例证明, 其技术可行, 使用
方便.
参考文献:
[ 1] 伍 涛. 用 Delphi对 SolidWorks 进行二次开发[ J] .贵
州省 CAD 应用工程, 1999, 1( 2) .
[ 2] SolidWorks Corpo ra tion. SolidWorks 2000 API help
[ Z] .
[ 3] David J. K rug linski. V isual C + + 技术内幕 (第四版 )
[ M ] . 潘爱民, 王国印, 译. 北京: 清华大学出版社,
1999.
[ 4] 丁毓峰, 盛步云, 张进军, 等.用 Visual C+ + 6. 0 开发
So lidWorks 三维标准件库 [ J] . 计算机工程, 2000, 26
( 7) .
作者简介:陈岳坪 ( 1973- ) ,男,湖南省岳阳市人,硕士研究
生,研究方向为 CAD/ CAM 集成技术.
基于 CAN 总线的汽车微机监控网络
王新杰,唐小琦,杨 波
(华中科技大学 数控工程中心,湖北 武汉 430074)
Computer Monit or Netw ork of Car Based on CAN Bus
WANG Xin j ie, TANG Xiao qi,YANG Bo
( Research Cent er o f National NC System Engineer ing & Technolog y , Hua zhong Univ ersity of Science and T echnlolog y ,
Wuhan 430074, China)
摘要: 基于 CAN 总线的通讯网络具有速度高、
抗噪性强及通用性好等优点, 它可以解决现代汽车
中控制单元和测试仪器之间需要进行大量数据交换
的问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
. 实际应用证明 CAN 接口的设计能够满足
汽车应用的需要.
收稿日期: 2001- 11- 13
关键词: CAN 总线;软件设计; 数据链路层
中图分类号: TP272
文献标识码: A
文章编号: 1001- 2257( 2002) 02- 0021- 03
Abstract: The communicat ion netw or k based
on CAN bus has the advantag e of higher tr ansfer
r ate, st ronger noise resistance and good generali-
ty , etc. It can solute the problem which there ex its
lots o f data exchange betw een contro l units and
test apparatus in moder n car. T he actual use
proves that the CAN interface design can meet the
·21·!机械与电子∀2002( 2)
demands of automobile applicat ion.
Key words: CAN bus; sof tw ar e design; data
link layer
0 引言
控制局域网 CAN ( control ler area netw ork)是
德国Bosch 公司为解决现代汽车中众多的控制与测
试仪器之间的数据交换而开发的一种通讯
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
.
CAN 网络具有反映快可靠度高的特性,应用于要求
实时处理的场合,例如汽车刹车防锁死系统安全气
囊等.今天此项通信协议已得到广泛应用, 成为现代
汽车设计中必须采用的装置,奔驰、宝马、大众、沃尔
沃及雷诺汽车都将 CAN 作为控制器联网的手段.
1 CAN 总线的特点及通讯协议
1. 1 CAN 总线的特点
CAN 总线是一种有效支持分布式控制或实时
控制的串行通信网络. 其通讯介质可以是双绞线、同
轴电缆或光纤.在汽车发动机控制部件、传感器等应
用中, 总线的位速率最大可达 1M bit / s. CAN 总线
具有以下主要特性:
a.无破坏性的基于优先权竞争的总线仲裁.
b. 可借助接收滤波的多地址帧传送.
c.具有错误检测与出错帧自动重发送功能.
d.数据传送方式可分为数据广播式和远程数据
请求式.
1. 2 CAN 总线帧格式
CAN 遵从 OSI 七层参考模式,按照 IEEE802.
2和 IEEE802. 3标准,其通讯接口集成了 CAN 协
议的物理层和数据链路层功能, 可完成对通讯数据
的成帧处理, 包括位填充、数据块编码、循环冗余检
验及优先级判别等项工作. 在系统中,数据按照携带
的信息类型可分为 4种帧格式:
a.数据帧.用于节点间传递数据,是网络信息的
主体, 其帧格式依次包括:帧起始、仲裁场、控制场、
数据场、CRC场、ACK 场和帧结束. 其中数据段长
度可编程 0~8个字节.
b. 远程帧. 由在线单元发送,用于请求发送具
有相同标识符的数据帧,其帧格式与数据帧基本相
同,但没有数据场.
c.出错帧. 出错帧是检测总线出错的一个信号
标志,由两个不同的场构成.第一个场由来自不同节
点的错误标志叠加,第二个场为错误界定符. CAN
协议采用 CRC 检验并可提供相应的错误处理功能,
保证数据通讯的可靠性.
d. 超载帧. 由超载标识和超载界定符组成, 表
明逻辑链路控制层要求的内部超载状态,并将由媒
体访问控制层的一些出错条件而被启动发送. 用于
扩展帧序列的延迟时间.
1. 3 CAN数据链路控制
系统中, CAN 总线以报文为单位进行数据传
输,节点对总线的访问采取位仲裁方式.报文起始发
送节点标识符可分为功能标识符和地址标识符.
CAN 协议的最大特点是打破了传统的节点地址编
码方式,而扩展了对通讯数据进行编码的方式.采用
这种方式可使不同的节点同时接收到相同的数据.
数据标识符可用 11位或 29位二进制表示,即可定
义 211 或 229个不同的数据类型,即使对未来更复
杂的汽车控制网络其容量也足够了. 标识符的值越
小,帧数据的优先级越高. 通过数据链路控制,每个
接收器完成帧接收滤波确定此帧数据是否有效.
CAN 控制器监听总线电平决定发送接收是否有效,
实际汽车应用中一般采用不冗余的通讯线路, 而
CAN 协议提供强大的出错诊断机制, 在保证数据通
讯的可靠性方面起了重要作用.
2 CAN 总线的应用设计
2. 1 总体方案设计
CAN 总线系统的一般组成模式如图 1所示.
图 1 系统总体结构
CAN 总线通讯接口适配卡插在 PC 机的扩展
槽内,其任务是: 将 PC 机内的数据和控制参数迅速
传送给指定的 CAN 网络节点, 同时将各 CAN 网络
节点的数据传输给 PC 机做进一步处理. 由于适配
卡中的微控制器主要承担了节点与 PC 机数字通讯
的协调工作,对其 I/ O 控制、A/ D 和高速捕获等功
能并无其它要求,系统选择了功能相对较少、价格低
廉的 80C31. 在 CAN 控制芯片的选择上考虑到
CAN 协议的升级和兼容性,选择了 INTEL 公司的
·22· !机械与电子∀ 2002( 2)
82527 芯片. 适配卡中还设有 32kB 大容量双口
RAM , 它可减少大量数据交换的次数, 既能满足少
量数据,又可满足大量数据的存储,增强了适配卡的
通用性.本系统选用了两个网络节点,在每一个网络
节点中,微控制器都选用了 PHILIPS 80C592芯片,
该芯片本身集成有 CAN 控制器, A/ D 转换器. 网络
节点上还配有 I2C 总线插座,以满足以后节点扩展
的需要. 系统工作过程: CAN 适配卡上电复位和初
始化后,等待 PC 机的命令和数据,当 PC 机发出命
令和数据时, 通知 CAN 适配卡(可有两种方式: 一
种是查询,一种是中断,本系统采用查询方式) . 适配
卡根据命令将数据写入 82527的 DPRAM 中, 并置
标志位,随后网络上的帧传送由 82527自动完成.
2. 2 适配卡软件设计
软件设计适配卡软件主要由两部分构成:一是
PC 端应用程序接口( API)函数, 负责完成 PC端与
双口RAM 之间的通信,采用 Borland C+ + 语言编
写; 二是单片机端程序设计, 负责单片机与双口
RAM 以及 CAN 控制器之间的通信,采用汇编语言
ASM 51编写. PC 机向适配卡上的双口 RAM 发送
的数据主要包括控制命令、发送数据命令和请求数
据命令,由不同的标识表示.适配卡与节点之间的通
信主要有两个任务: 一是适配卡向子节点转发 PC
机的命令,二是子节点将数据实时传送给适配卡.
CAN 适配卡单片机程序流程如图 2 所示.
CAN 适配卡的设置模块主要负责设置 CAN 适配
卡占用端口的波特率、工作方式等.数据的发送模块
根据用户制定的应用层协议,将要发送的数据分类、
拆解、合并,确定发送对象,再根据 CAN 的数据链
路层协议填写到 CAN 数据帧的各个场,然后发送
出去. 接收模块则与发送相反, 首先进行接收滤波,
确认该帧数据是否接收,如果接收,先按照数据链路
层协议拆解数据包,将数据场的数据提取出来, 再根
据应用层协议确定数据的具体含义,进行相应的处
理. CAN 信息帧共有 4种:数据帧,远程帧,出错帧
和超载帧. 其中,数据帧将数据由发送器传至接收
器. 一个数据帧由 7个不同位场构成. 其中仲裁场
由标识符 ID 和 RT R ( Remote T ransmission Re-
quest )构成. 用户应用程序中卡的初始化、数据的发
送接收都可以通过调用编写的 API 函数来完成,以
CAN 适配卡为例简要说明 CAN 通信程序的实现,
简化的程序流程图如图 3 所示. 其中: 函数
canInitHW ( )的功能是初始化适配卡的硬件.
图 2 CAN 适配卡单片 图 3 用户应用程序
机程序流程图 基本结构流程图
CanConf ig( CAN ST RU CT can)功能是控制
CAN 端口的接收码、接收屏蔽和总线定时寄存器的
设置和输出控制方式.
CanSend( DATA STRUCT send data)端口
发送数据函数.
CanReceive( DAT A STRUCT * data pt r)端
口接收数据函数.
CanExitHW( )是释放CAN 模块的函数.
3 结束语
CAN 总线与其它通讯方式相比具有通讯速率
高、可靠性高、连接方便和性能价格比高等优势. 并
且 CAN 应 用系 统的 设计 师依 据国 际标 准
( ISO11898) ,各生产厂商的控制器有标准的输入/
输出接口, 所以该网络是一个具有开放性和灵活性
的系统, 可在不要求所有节点及应用层改变任何软
件和硬件的情况下, 自由地增加或减少控制器节点.
参考文献:
[ 1] 邬宽明, 等. CAN 总线原理和应用系统设计[ M ] . 北
京:北京航空航天大学出版社, 1996.
[ 2] 张 凯, 等. MCS 51 单片机综合系统及其设计开发
[ M ] . 北京:科学出版社, 1996.
[ 3] Gerald Schickhuber , O liver M cCar thy . Distributed
F ieldbus and Cont ro l Netw ork Sy stems[ J] . Comput -
ing & Contr ol Engineer ing Journal, 1998.
作者简介:王新杰 ( 1977- ) ,男,湖北省襄樊市人,主要从事
智能控制和信号处理的研究.
·23·!机械与电子∀2002( 2)