组态软件环境下的CAN总线通信适配卡驱动程序的开发

合集下载

组态环境下对CAN232接口卡驱动程序的设计

组态环境下对CAN232接口卡驱动程序的设计

关键字:CAN总线、CAN232智能接口卡、引言随着工业测控技术和生产自动化技术的不断进步,传统的RS-232、RS-485和CCITTV.24通信技术已不能适应现代化的工业控制需要,而现场总线(Fieldbus)以其低廉的价格、可靠的性能而逐步成为新型的工业测控领域的通信技术。

现场总线是应用在生产现场,在微机化测量控制设备之间实现双向串行多节点数字通信的系统,是一种开放式、数字化、多点通信的底层控制网络。

汇集了计算机技术、网络通信技术和自动控制技术(3C)的现场总线技术,从20世纪80年代开始发展起来,并逐步在制造业、流程工业、交通、楼宇等方面的自动化系统中得到了广泛的重视和应用。

现场总线主要有以下几种类型:基金会现场总线(FF)、LonWorks、ProfiBus、CAN、HART,而其中CAN因为具有高性能、高可靠性以及独特的设计而越来越受到关注,现已形成国际标准,被公认为几种最有前途的现场总线之一。

由于CAN总线所具有的突出优点,应用范围越来越广泛,总线与计算机网络的通讯也成为一个大家很感兴趣的课题。

计算机通过CAN232智能接口卡与CAN总线进行通讯便是其中的一种方式。

本章1:CAN的基本知识1.1:什么是CANCAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。

最初,CAN 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU 之间交换信息,形成汽车电子控制网络。

CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。

当信号传输距离达到10km时,CAN仍可提供高达50Kbit/s的数据传输速率。

它是一种有效支持分布式控制或实时控制的串行通讯网络。

1.2:CAN-BUS的发展史在1980 年的早些时候,Bosch 公司的工程师就开始论证当时的串行总线用于客车系统的可行性。

基于WinCE环境的CAN适配卡驱动程序的设计与实现

基于WinCE环境的CAN适配卡驱动程序的设计与实现

基于WinCE环境的CAN适配卡驱动程序的设计与实现
1.引言
WinCE 是一种为多种嵌入式系统和产品设计的紧凑、高效、可升级的操作系统,WinCE 采用标准模式,其最主要的特征:为有限的硬件资源提供了多线程、多任务和完全优先级的计算环境。

WinCE 操作系统支持两种类型的驱动程序:[1]本地驱动程序(Build-In),是
把设备驱动程序作为独立任务实现,直接在顶层任务中实现硬件操作,完成特有专用的驱动程序;流接口驱动程序,WinCE 的I/O 系统将设备程序作为内核过程实现,这种方式便于实现I/O 子系统的层次模型,便于文件系统一起把设
备作为特殊文件处理,提供统一的管理、统一的界面和统一的使用方法,并把设备、文件及网络通信组织成为一致的更高层次的抽象,为用户提供统一的系统服务和用户接口。

驱动程序封装了将这些命令转换为它所控制的设备上的适当操作所需的全部信息。

流接口驱动程序有在启动时加载和动态加载两种方式。

本文实现的在WinCE 环境下流结构的PC/104-CAN 驱动程序是在系统启动时加载的。

2. CAN 总线技术简介
CAN 总线是德国Bosch 公司开发的一种串行数据通信协议,CAN 总线属于总线式串行通讯网络,具有总线为多主方式工作且无需站地址节点信息、CAN 网络上的节点信息分成不同的优先级、总线冲突仲裁时间低和总线的通信介质选择灵活等优点[2]。

CAN 适配卡的核心工作单元是它的控制器,控制器SJA1000 的组织结构如图1 所示。

基于can总线的dnc系统数控程序传输软件的开发

基于can总线的dnc系统数控程序传输软件的开发

基于CAN总线的DNC系统数控程序传输软件的开发数控机床加工过程包括一系列由数控系统发出的命令所控制的动作,如主轴的起停、转速大小、进给的方向、速度及刀具的变换等,在每个时刻,数控机床的运动都不尽相同,是一个动态变化的过程。

在DNC系统中,数控机床要实现边传输边加工,必须要保证其缓冲区中始终要有数控程序,即在上次已经传输的NC程序消耗完之前及时的进行新的NC程序的补充,而每次传输的NC程序的程序消耗率不同,这就要根据机床在各个时刻的加工状态,运用合理的调度算法通过DNC主机对系统进行实时的调度。

调度算法从本质上说就是在系统运行时,决定在某时刻执行哪个调度任务的方法f21】。

在DNC系统通信调度中常用固定优先级调度算法和动态调度算法㈤,其中固定优先级调度算法指各任务在执行前,其优先级大小已经确定,系统按照优先级大小依次执行各个任务,整个运行过程中各任务的优先级大小始终不变。

该算法具有开销小、易实现等特点,但在网络复杂繁重的情况下,不能保证低优先级任务的实时性,造成任务执行延迟、数据丢失等现象。

1973年,C.L.Liu和J.W.Layland提出的单调速率(RMS、)[23】算法最具代表性,在RMS算法中,各任务的优先级大小根据任务周期大小确定,周期越大,优先级越低。

所谓动态优先级算法指任务在执行前,赋予各任务一个初始优先级,随着各任务执行情况的不同,其优先级会实时的变化,以便获得更好的调度性斛241。

动态调度适应变化的环境,适合于对任务生成前其特性不清楚的动态实时系统调度。

但是,动态优先级调度算法的可预测性差且具有很大的调度开销。

动态优先级调度算法可分为资源充足环境下的调度和资源不足环境下的调度,其中,用于资源充足环境下的EDF(EarliestDeadlineFirst)算法占有重要的地位瞄名71。

在EDF算法中,任务的优先级是根据任务的截止时间来确定的,任务的绝对截止时间越近,任务的优先级越高,当有新的任务进入优先级队列时,任务的优先级队列就有可能调整。

can总线usb接口卡的软件设计与实现

can总线usb接口卡的软件设计与实现

CAN总线USB接口卡的软件设计与实现——基于CAN总线的通信系统研究导师罗玉平学生陈善品第一章概述1.1课题的来源及研究意义随着计算机硬件、软件技术及集成电路技术的迅速发展,工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大的进步。

由于对系统的可靠性和灵活性的高要求,工业控制系统的发展主要表现为:控制的面向段化,系统面向分散化,即负载分散、功能分散、危险分散和地域分散。

分散式工业控制系统就是为适应这种需要而发展起来的。

这类系统是以微机为核心,将5c技术——compuLer(计算机技术)、Control(自动控制技术)、Communication(通信技术)、CRT(显示技术)和Change(转换技术)紧密结合的产物。

它在适应范围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。

传统的DCS(DistributedControlSystem)控制系统由调度管理站和各种过程测控站组成,调度管理站完成系统的组态、监视操作和运行管理,而现场过程测控站完成生产过程信息的采集和控制。

DCS的核心思想是分散控制、集中管理,但是与工业过程打交道的过程测控站功能较强,一般是一个完整的测控系统,采用的仍是集中控制的,现场信号的检测,传输和控制还是采用4、20mA的模拟信号,信息量有限,难以实现设备与外界的信息交换,使自动控制系统成为].厂中的“信息孤岛”,严重制约了企业信息集成及企业综合自动化的实现。

信息技术的飞速发展,逐渐形成了自动化领域的开放系统互连通信网络,形成r全分布式网络集成化自动控带4技术,这就是现场总线技术。

随着现场总线的国际标准的制定与完善,采用现场总线将现场仪表与控制室内仪表连接起来,用数字信号取代模拟信号,组成全数字化、双向、多站的通信网络。

而现场总线网络的每一个节点都是一台智能化仪表,包括变送器、检测仪表、执行器等现场仪表和控制室内仪表装景,这些仪表都遵循统一的标准化和规范,按照系统化和开放型的要求,实现数字化、智能化、标准化,并且增加远距离操作、故障自诊断6和就地控制功能,这样就实现了真正意义上的分散控制,集中管璐。

力控组态软件下的设备驱动程序开发

力控组态软件下的设备驱动程序开发

力控组态软件下的设备驱动程序开发发布时间:2006-08-07 14:18类型:应用案例904人浏览1 引言组态软件设备驱动程序用于提供了连接计算机硬件的软件接口,在装入后成为操作系统内核的—部分,也就是说它成为操作系统的信任部分。

因此,任何设备驱动程序的细小错误都可能引起操作系统的崩溃,要避免这样的事情发生,只有反复测试所写的代码,遵循编写驱动程序的规则。

最简单的方法是购买现成的驱动程序来直接处理我们的设备,但这样的驱动程序存在连接与嵌入错误的风险。

另外,可以通过修改各种商业通用驱动程序与许多简单的设备打交道。

如果自己编写驱动程序的话,尽量使用某个标准的总线驱动程序或者类驱动程序,因为它们通常实现了我们所需要的大量功能。

如果设备只有一个专门的用途,则为它编写一个单一驱动程序来处理所有设备的请求可能是最简单的解决方案。

三维力控组态软件提供了力控I/O驱动程序接口软件开发工具包FIOS SDK,FIOS SDK 提供了标准的开发接口,开发人员仅需要根据I/O设备的具体通信协议或驱动接口说明,填写几个扫描函数的实现代码,进行必要的调试与测试,即可完成一种FIOS的开发。

2 课题背景目前笔者接手的项目是X机场助航灯光计算机监控系统。

当机场灯光实施II类运行时,其能见度在800m至400m之间,要求灯光设备可靠性高、故障少,但往往灯具在运行过程中产生故障是随机的,其故障率达到某一个值时,将不能满足II类运行要求[1][2]。

为保证监控系统运行的稳定性和可靠性,采用双机容错模式与力控工业控制组态软件相结合的方法,通过硬件冗余、软件组态的可靠设计、Visual C++与力控组态软件的结合,并以RS-485总线作为网络连接线,实现分布式的数据库配置,设计了基于力控组态环境的双机容错系统。

开发此系统的任务之一,就是自主开发驱动程序,将自定义的通信协议写入驱动程序之中。

而三维力控组态软件提供了I/O驱动程序接口开发工具包(FIOS SDK),因此,开发驱动的主要工作就是利用组态软件提供的接口函数和输入输出类库编写Ioapi中的代码,以达到I/O 设备的控制要求[3]。

《工业控制网络》题库(有答案)

《工业控制网络》题库(有答案)

页眉内容一、概念题1、现场总线答:安装在制造或过程区域的现场装置与控制室内的自动控制装置之间的数字式、串行、多点通信的数据总线称为现场总线。

2、模拟数据编码答:分别用模拟信号的不同幅度、不同频率、不同相位来表达数据的0,1状态的,称为模拟数据编码。

3、数字数据编码答:用高低电平的矩形脉冲信号来表达数据的0,1状态的,称为数字数据编码。

4、单极性码答:信号电平是单极性的数字数据编码。

5、双极性编码答:信号电平为正、负两种极性的数字数据编码。

6、归零码(RZ)答:在每一位二进制信息传输之后均返回零电平的数字数据编码。

7、非归零码(NRZ)答:在整个码元时间内维持有效电平的数字数据编码。

8、差分码用电平的变化与否来代表逻辑“1”和“0的数字数据编码。

9、基带传输答:就是在数字通信的信道上按数据波的原样进行传输,不包含有任何调制10、载波传输答:采用数字信号对载波进行调制后实行传输。

11、单工通信答:就是指传送的信息始终是一个方向,而不进行与此相反方向的传送。

12、半双工通信答:是指信息流可在两个方向上传输,但同一时刻只限于一个方向传输13、全双工通信是指能同时作双向通信。

14、广播式网络答:仅有一条通信信道,由网络上的所有机器共享。

短的消息,即按某种语法组织的分组或包,可以被任何机器发送并被其它所有的机器接收。

分组的地址字段指明此分组应被哪台机器接收。

一旦收到分组,各机器将检查它的地址字段。

如果是发送给它的,则处理该分组,否则将它丢弃。

15、点到点网络由一对对机器之间的多条连接构成。

为了能从源到达目的地,这种网络上的分组可能必须通过一台或多台中间机器。

16、类一组表示同种系统组件的对象。

一个类是一个对象的一种概括。

一个类中所有的对象在形式和行为上是相同的,但是它们可以包含不同的属性值。

17、实例一个对象的一个明确的真实(物理)事件。

18、属性一个对象的一个外部可视特性或特点的一种描述。

19、仅限组2服务器一个UCMM非能力的和必须使用预定义主/从连接组来建立通信的从站。

CAN驱动及使用流程

CAN驱动及使用流程

本文档基于于常青师兄的《流程090808.rtf》文档所做,和容其内有些不同,希望大家参照使用。

/************************* 步骤*****************************/1.添加CAN驱动(1)安装Tornado 2.2.1/VxWorks 5.5.1 for Pentium服务器和客户端,BSPs/Drivers for VxWorks 5.5.1: Pentium即可.将D:\软件备份\vxworks安装程序\can\target中的文件复制到F:\Tornado2.2\target 中.将D:\软件备份\vxworks安装程序\can\pid20中的文件复制到F:\Tornado2.2中.创建一个Bootable的Tornado工程,这时Tools菜单中会出现wnCAN选项->Build wnCAN Library,选择奔腾3gnu.(2)将Yanxiang-can压缩包中的文件对照文件名分别拷贝到对应的文件夹中,可用搜索法在安装目录中查找Yanxiang-can压缩包中的文件名:\target\h\CAN ->头文件所在位置\target\src\drv\CAN ->esd_pc104_200.C、hcan2.C、can_api.C、wncanDevIO.C、wnCAN.C、sja1000.C、i82527.C、shTahoeAmanda.C、msmcan.C、 esd_pci_200.C、shbiscayne.C、canFixedLL.C、canController.C、canBoard.C、Makefile。

\target\config\comps\src\CAN ->biscayne_cfg.C、esd_pc104_200_cfg.C、esd_pci_200_cfg.C、msmcan_pc104_cfg.C、ppc5xx_cfg.C、sys_esd_pci_200.c、tahoeamanda_cfg.c、wnCAN_show.c。

最新-VxWorks下PC2019019-CAN驱动程序设计 精品

最新-VxWorks下PC2019019-CAN驱动程序设计 精品

VxWorks下PC104-CAN驱动程序设计摘要详细介绍实时多任务操作系统环境下驱动程序的设计原理;针对驱动程序实现的困难,给出下实现驱动程序的工作步骤。

文件以104-适配卡为例,简要介绍硬件结构,重点给出驱动程序实现的关键代码。

关键词104系统驱动系统是一款优秀的实时多任务操作系统,具有抢占式调试、中断延迟小等特点。

本文在简要介绍必备的硬件环境下,以为平台,详细介绍驱动程序的开发。

1104-适配卡的硬件结构104-适配卡主要由控制器1000、光电隔离6137,收发驱动器82250及译码电路组成。

编程主要了解的是控制器1000。

适配卡原理如图1所示。

范文先生网收集整理2地址译码和中断选择系统104主板的为486,其对接口板访问有两种方式内存映射和访问。

寻址采用专门的指令,每次只能传送单个字节。

内存映射方式可以访问较大的地址空间并且指令丰富,便于实现快速交换数据。

本文讨论的卡采用存映射模式工作,与486接口是104总线,它与总线兼容。

对于86体系的,可以映射的空间为08000~0。

使用比较器和地址选择开关组成可选端口地址译码电路,通过开关选通内存映射基地址8000、9000、000、…、000,以避免与其它器件冲突。

偏移地址分配如下00~1000的寄存器;100~1对该范围内的任意地址进行写操作,均可导致硬件复位。

1000的引脚通过跳线选择3~7、9~12或15中的一个,避免与其它的适配卡冲突。

3104-适配卡驱动实现31驱动概述操作系统有两种方式实现驱动。

第一种方式是,把设备驱动程序作为独立任务实现,直接在顶层任务中实现硬件操作,完成特有专用的驱动程序。

第二种方式是,的系统将设备程序作为内核过程实现。

这种方式便于实现子系统的层次模型,便于文件系统一起把设备作为特殊文件处理,提供统一的管理、统一的界面和统一的使用方法,并把设备、文件及网络通信组织成为一致的更高层次的抽象,为用户提供统一的系统服务和用户接口。

组态软件环境下的CAN总线通信适配卡驱动程序的开发

组态软件环境下的CAN总线通信适配卡驱动程序的开发

组态软件环境下的CAN总线通信适配卡驱动程序的开发发表时间:2018-08-20T11:02:13.703Z 来源:《电力设备》2018年第15期作者:耿庆州[导读] 摘要:CAN总线是控制局域网络(ControlAreaNetwork)的简称,最早用于汽车内部测量和执行部件之间的数据通讯,由德国BOSCH公司提出,是一种具有高可靠性、支持分布式控制和实时控制的串行通讯网络。

(江苏徐工工程机械研究院有限公司江苏省徐州市 221004)摘要:CAN总线是控制局域网络(ControlAreaNetwork)的简称,最早用于汽车内部测量和执行部件之间的数据通讯,由德国BOSCH公司提出,是一种具有高可靠性、支持分布式控制和实时控制的串行通讯网络。

CAN总线的速率可达1Mbps/40m,其最大传输距离可达5Kbps/10Km,这些卓越性能使CAN总线得以在全球范围内一直保持高速发展,公认为极具发展前途的现场总线之一。

本文描述了CAN总线的特点和通讯适配卡的工作原理,以及基本的通讯协议,然后详细阐述了通过DDE通讯在组态软件环境下对CAN适配卡的驱动编程,最后说明了上位机与CAN 节点通讯的组态实现。

关键词:CAN总线;适配卡;组态软件一、前言目前国内外CAN总线设备开发厂商设计的CAN总线适配器大多采用ISA和PCI接口。

组态王没有提供CAN通信适配卡的驱动程序,但它提供了DDE(动态数据链接)接口,因此我们可以用VB编制一个起桥梁作用的程序来和硬件设备打交道,用VB完成与CAN通信适配卡的数据通信,然后通过DDE与组态王进行数据交换,而组态王主要实现上位机监控界面的组态。

二、基本通信协议当上位机需要与子节点进行通信时,可向CAN网络节点发送信息帧,CAN网络中的节点接收到信息帧后,通过判别标识符的低3位来区别信息帧的类别后,再将节点所需要的数据发送出去。

当网络节点发生突发事件时,可随时向上位机报告,上位机同样也是通过标识符的低3位来识别数据类型。

组态王软件驱动程序开发

组态王软件驱动程序开发

组态王驱动开发包用户手册北京亚控科技发展有限公司1. 版权本开发包版权属于北京亚控科技发展有限公司,任何组织、团体、个人,未经亚控公司允许,不得擅自拷贝,使用,对于购买本开发包的组织、团体、个人,只能内部使用,不得擅自泄漏给第三方。

2. 概述本开发包采用微软标准的COM组件技术,采用该技术,在创建接口时,可以创建多个互相独立对象,每个对象都可以拥有自己的变量。

最后的结果是一个DLL文件。

接口中的各函数,是被组态王的两个应用程序---TouchExplorer.exe和TouchVew.exe调用的。

如果这两个应用程序都不启动,函数中的代码将永远没有机会执行。

组态王的驱动程序是组态王和硬件设备连接的桥梁,本开发包用于开发组态王的驱动程序。

只要拥有硬件的通讯协议,即可以使用本开发包开发组态王的驱动程序。

本开发包只能使用VC++开发。

3. 开发包3.0修订目的a)通用版和嵌入版统一到一套代码中,通用版和嵌入版实现同步更新。

b)生成设备类,为多设备型号驱动提供解决方法。

c)详尽、稳健的基类代码。

d)完善的功能与向导。

e)规范各类帮助函数。

f)规范编码格式、统一使用英文版。

g)修改部分功能的实现方法。

4. 开发包使用我们提供一个开发向导工具“DriverToolKit3.0.0.0.exe”,使用这个工具,能够自动地生成驱动代码框架。

运行工具,如下图:请在下页输入您的目标文件夹点击“安装”,开发包即安装完成。

使用开发包向导创建驱动的过程:(1)启动Visual 2003。

(2)新建一个工程,“项目类型”选择“Visual C++项目”,“模板”选择“KingView Wizard”,在下面的编辑框中输入工程的名字以及存储路径,点击“确定”。

(3)这个创建向导分3页,第一页是“概述”,显示的是默认的设置信息,如果您不需要改变这些,直接点击“确定”即可成功的创建驱动框架。

(4)第二页是“驱动类型和编译选项”,包含如下部分:驱动类型:o串口驱动(适用于查询式设备)这个类型,是我们一般常用的,适合于普通的上位查询,设备应答的通讯类型。

can总线的通信硬软件源码

can总线的通信硬软件源码

can总线的通信硬软件源码CAN通讯的优点在此就不多说了,10公里,5Kb/s的速度是能保证的。

第一步:硬件环境的建立。

这里采用的是SJA1000作为总线控制器,CTM8251模块作为总线驱动器。

MCU采用的是MEGA16:利用I/O口模拟数据总线,当然也可以使用有总线的MCU:MCS-51,MEGA8515等。

原理图如下:第二步:SJA1000的控制首先阅读下SJA1000的手册,基本了解下SJA1000的结构,主要是寄存器方面的。

还要了解下CA N总线方面的东西:BasicCAN,Peli CAN,远程帧,数据帧等等……SJA1000工作之前需要配置一下,才能正常工作,没有经过配置的SJA1000回拉坏总线的:组成网络的时候,如果其中有的SJA1000没有正确配置,这个设备会干扰总线,使其它设备的数据发送不出去。

怎么才能控制SJA1000呢,请看下面的SJA1000读写的时序图:写的时序根据时序要求,可以利用I/O口模拟总线了://**************************读SJA1000*************************// uint Read_SJA1000(uint address){uchar data;asm("nop");ALE_off;WR_on;RD_on;CAN_cs_on;DDRA=0xff; //数据口为输出PORTA=address; //输出数据的地址asm("nop");//delay5us(1);ALE_on;asm("nop");//delay5us(1);//DDRA=0xff; //数据口为输出PORTA=address; //输出数据的地址 //再次输出地址,确保一致。

asm("nop");//delay5us(1);ALE_off;//delay5us(1);CAN_cs_off;RD_off;asm("nop");//delay5us(2);asm("nop");DDRA=0x00; //数据口为输入PORTA=0xff; //上拉asm("nop");data=PINA; //获得数据asm("nop");//delay5us(1);RD_on;CAN_cs_on;asm("nop");//delay5us(2);//dog();return data;}//**************************写SJA10000*************************// void Write_SJA1000(uint address,uint data){ asm("nop");//uint temp1,temp2;DDRA=0xff; //数据口为输出PORTA=address; //输出数据的地址CAN_cs_on;ALE_off;WR_on;RD_on;asm("nop");//delay5us(1);ALE_on;asm("nop");//delay5us(1);//DDRA=0xff; //数据口为输出PORTA=address; //输出数据的地址再次输出地址,确保数据准确asm("nop");//delay5us(1);ALE_off;//delay5us(1);CAN_cs_off;WR_off;asm("nop");//delay5us(1);asm("nop");//DDRA=0xff;PORTA=data; //输出数据asm("nop");//delay5us(2);WR_on;PORTA=data; //再次输出数据,取保一致CAN_cs_on;asm("nop");//delay5us(2);asm("nop");//dog();}现在可以读写SJA1000了。

CAN+控制器驱动程序的编写与开发

CAN+控制器驱动程序的编写与开发

PHILIPS LPC2000系列ARM7微处理器CAN控制器驱动程序的编写与开发广州周立功单片机发展有限公司2004 年8 月25 日目录第1章CAN控制器和验收过滤器 (4)1.1特性 (4)1.2管脚描述 (4)1.3CAN模块的存储器映射 (4)1.4CAN控制器寄存器一览表 (5)1.5各控制寄存器解释 (7)1.5.1 模式寄存器(CANMOD – 0xE00x x000) (7)1.5.2 命令寄存器(CANCMR – 0xE00x x004) (7)1.5.3 全局状态寄存器(CANGSR – 0xE00x x008) (8)1.5.4 中断和捕获寄存器(CANICR – 0xE00x x00C) (9)1.5.5 中断使能寄存器(CANIER – 0xE00x x010) (10)1.5.6 总线时序寄存器(CANBTR – 0xE00x x014) (11)1.5.7 出错警告界限寄存器(CANEWL – 0xE00x x018) (11)1.5.8 状态寄存器(CANSR – 0xE00x x01C) (12)1.5.9 Rx帧状态寄存器(CANRFS – 0xE00x x020) (12)1.5.10 Rx标识符寄存器(CANRID – 0xE00x x024) (13)1.5.11 Rx数据寄存器A(CANRDA – 0xE00x x028) (13)1.5.12 Rx数据寄存器B(CANRDB – 0xE00x x02C) (14)1.5.13 Tx帧信息寄存器(CANTFI1,2,3 – 0xE00x x030,40,50) (14)1.5.14 Tx标识符寄存器(CANTID1,2,3 – 0xE00x x034,44,54) (14)1.5.15 Tx数据寄存器A(CANTDA1,2,3 – 0xE00x x038,48,58) (15)1.5.16 Tx数据寄存器B(CANTDB1,2,3 – 0xE00x x03C,4C,5C) (15)1.6寄存器操作方法 (16)1.6.1 错误处理 (17)1.6.2 睡眠模式 (18)1.6.3 中断 (18)1.6.4 发送优先级 (19)1.7组合CAN寄存器 (19)1.7.1 集中发送状态寄存器(CANTxSR – 0xE004 0000) (19)1.7.2 集中接收状态寄存器(CANRxSR – 0xE004 0004) (20)1.7.3 集中其他状态寄存器(CANMSR – 0xE004 0008) (20)1.8全局验收过滤器 (21)1.8.1 验收过滤器寄存器 (22)1.8.2 标准帧单个起始地址寄存器(SFF_sa – 0xE003 C004) (22)1.8.3 标准帧组起始地址寄存器(SFF_GRP_sa – 0xE003 C008) (23)1.8.4 扩展帧起始地址寄存器(EFF_sa – 0xE003 C00C) (23)1.8.5 扩展帧组起始地址寄存器(EFF_GRP_sa – 0xE003 C010) (23)1.8.6 AF表格终止寄存器(ENDofTable – 0xE003 C014) (23)1.8.7 LUT错误地址寄存器(LUTerrAd – 0xE003 C018) (24)1.8.8 LUT错误寄存器(LUTerr – 0xE003 C01C) (24)1.8.9 验收过滤器表格和ID索引值举例 (24)1.8.10 FullCAN模式 (25)第2章CAN控制器驱动程序的编写 (28)2.1驱动程序的结构 (28)2.2驱动程序使用方法 (31)2.3驱动程序各文件介绍 (31)2.3.1 用户配置文件 (31)2.3.2 CAN驱动应用接口层文件 (33)2.3.3 功能函数层文件 (41)2.3.4 硬件抽象层文件 (44)第3章CAN驱动程序应用实例——RS232与CAN-bus透明转换器 (45)3.1硬件平台 (45)3.2软件平台 (46)3.3应用注意事项 (46)3.4实现的功能说明 (47)3.5测试方法说明 (47)3.6简单的RS232数据与CAN-bus数据透明转换的实现 (49)3.6.1 系统初始化 (49)3.6.2 主循环处理 (50)第4章参考文献 (54)第1章 CAN控制器和验收过滤器LPC2119/2129/2194/2290/2292/2294微处理器包含2或4个CAN模块,可同时支持多个CAN总线的操作,使器件可用作网关、开关、工业或汽车应用中多个CAN总线的路由器。

xPC目标环境下CAN卡驱动模块的开发

xPC目标环境下CAN卡驱动模块的开发
2010 年 第 5 期
18 曹德胜.制冷剂使用手册.北京:冶金工业出版社,2003. 19 谢华阳.浅谈汽车空调制冷剂的发展.农业装备与车辆工
程 ,2005 (2):34~36. 20 张于峰.一种 R12 替代物的性能分析及实验研究.工程热
物 理 学 报 ,2002(5 ):535~538. 21 Lofy J, Bell L. E. Thermoelectrics for environmental control
(a)初 始 化 模 块
(b)收 发 模 块 图 1 API 回调函数构架图
2.3.1 CAN 卡初始化 CAN 卡控制器比较复杂,在通信前必须确认硬
件信息的正确性,初始化各寄存器。 CAN 卡初始化程序如下所示: static int Canint(void) {
汽车技术
·设计·计算·研究· if (CANPortOpen (m_nDevNum,(WORD*)
两 种 类 型 )[1,2]。 要搭建完整的 ESP 硬件在环试验台,保证试验
台的实时性和可靠性,就必须在试验台中加入 CAN 模块来完成试验所需的各种车辆数据的传输, 所以 开发 xPC Target 下的 CAN 卡驱动成为搭 建 试 验 台 的关键。 本文主要针对研华公司的 PCI-1680U 双端
&m_n -Port, (WORD*)&m_nHostID, (WORD*) &m_nPre-BaudRate) ! = SUCCESS)
{printf ("CANPortOpen error! ");//return TRUE;
}//打 开 端 口 ,选 择 设 备 号 、 端 口 号 及 对 应 的 波 特 率;

CAN总线控制系统的组态软件研究

CAN总线控制系统的组态软件研究

I/O 设备为智能模块 ,也可以根据需要 ,增加如可编
程控制器 、变频器等的 I/O 驱动程序 。 I/O 驱动的
内部数据流图如图 3。
图 3 I/O驱动的数据流图
在此组态软件的硬件平台中 , CAN 总线将上 、 下位机联系在一起构成控制网络 。上 、下位机的数
© 1994-2010 China Academic Journal Electronic Publishing House. All rights reserved.
关键词 : CAN 总线 ;组态软件 ;实时数据库 中图分类号 : TP273, TP311 文献标识码 : B 文章编号 : 1006 - 2394 (2007) 01 - 0008 - 03
Research of Conf igura tion Software Ba sed on CANbus Con trol System
1
总时段高电压出现时间 :分
1
3. 4 界面设计 本文设计的软件界面采取传统的 W indow s界面
4 结论
本文在 V isual Basic 平台上开发了 一台面向电网电压 /谐波监测系统的监 控系统软件 。该系统具有很好的通 用 性 ,可维护性和可扩充性 。较之以前的 电网电压 /谐波监测系统相比 , 本系 统 不仅支持基本的数据通信功能 ,而且还 增加了远程的无线通信方式 ,大大提高 了监 控 系 统 的 实 时 性 、经 济 性 和 可 靠 性 。该软件在实际推广应用中还应 不 断完善和发展 ,以适应电力系统的需 要 ,提高我国电网的现代化管理水平 。
Private:
CString Name; / /点名称
CString Desc;
/ /点描述

CAN总线通信系统上位机通信软件的设计说明

CAN总线通信系统上位机通信软件的设计说明

. .. .目次1 绪论 (1)1.1 研究背景 (1)1.2 研究目的和意义 (1)1.3 国外发展现状 (2)1.4 论文结构安排 (2)2 CAN总线协议分析 (3)2.1 CAN-bus 规V2.0 版本 (3)2.2 CAN控制器SJA1000 (6)2.3 本章小结 (6)3 开发环境介绍 (6)3.1 开发环境 (6)3.2 CANUSB—Ⅰ/Ⅱ智能CAN接口卡 (7)3.3 本章小结 (8)4 CAN通信软件设计 (8)4.1 驱动程序安装 (8)4.2 CAN接口卡函数库说明 (8)4.3 界面设计 (11)4.4 软件功能实现 (16)4.5 本章小结 (22)5 测试及发布 (23)5.1 软件功能测试 (23)5.2 程序发布 (24)5.3 本章小结 (27)结论 (28)致29参考文献 (30)1绪论现场总线,就是应用于工业现场,采用总线方式连接多个设备,用于传输工业现场各种数据的一类通信系统[1]。

CAN(Controller Area Network)总线是现场总线的一个分支,因其具有很高的可靠性和性能价格比,已经成为国际标准,在工业过程监控设备的互连方面得到广泛应用,受到工业界的广泛重视,并已被公认为几种最有前途的现场总线之一。

1.1研究背景随着计算机硬件、软件技术及集成电路技术的迅速发展,工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大进步。

由于对系统可靠性和灵活性的高要求,工业控制系统的发展主要表现为:控制多元化,系统面向分散化,即负载分散、功能分散、危险分散和地域分散。

分散式工业控制系统就是为适应这种需要而发展起来的。

这类系统是以微型机为核心,将5C技术——Computer(计算机技术)、Control(自动控制技术)、Communication(通信技术)、CRT(显示技术)和Change(转换技术)紧密结合的产物。

它在适应围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。

基于WinCE环境的CAN适配卡驱动程序的设计与实现

基于WinCE环境的CAN适配卡驱动程序的设计与实现

基于WinCE环境的CAN适配卡驱动程序的设计与实现杨军波;须文波
【期刊名称】《微计算机信息》
【年(卷),期】2005(21)12Z
【摘要】简要介绍了嵌入式实时操作系统WinCE环境下驱动程序的设计原理和CAN总线技术,并详细分析了依托PC/104总线的CAN适配卡底层驱动程序的设计与实现。

【总页数】3页(P26-28)
【作者】杨军波;须文波
【作者单位】江南大学
【正文语种】中文
【中图分类】TP336
【相关文献】
1.PCI-CAN总线智能适配卡驱动程序的设计与实现 [J], 刘宇;武自芳;毕建刚
2.基于WinCE下NDIS小端口驱动程序的设计与实现 [J], 石启国
3.XJ128喷头在WinCE下驱动程序的设计与实现 [J], 王宏文;董苗;梁彦彦
4.基于WinCE环境的CAN适配卡驱动程序的设计与实现 [J], 杨军波;须文波
5.基于WinCE环境的CAN总线扩展卡驱动程序的设计与实现 [J], 杨清华
因版权原因,仅展示原文概要,查看原文内容请购买。

WindowsCE.Net下CAN卡的驱动程序设计

WindowsCE.Net下CAN卡的驱动程序设计

下 CAN 卡的驱动程序设计 摘要主要讨论在设计和开发卡通信程序的方法;详细介绍卡底层驱动 函数的设计和实现,同时将驱动进行封装,用动态库的方式提供给用户卡 通信用的驱动, 使用启可以方便地在自己的程序中调用, 实现下的卡通信。

关键词驱动引言近年来电力行业为了快速部署变电站,采用了建造整 体变电所的方法在生产基地将变电站的内部设备安装、调试完成,只留下 与外界的接口,整体运到变电站所在地后进行安装和简单调试即可投入运 行。

其内部设备通过总线进行通信,系统原有的监控软件基于系统,维护 调试比较困难,因此想要寻求更方便、友好的系统支持。

经过比较,嵌入式操作系统市场上风头正劲的成为最终选择。

微软的最新产品提供了端对端的开发、调试手段,可以不拆卸设备的 情况下通过登录到上进行调试和维护,其系统本身为嵌入式市场进行重新 设计,包括创建一个基于的定制设备所需的一切。

这样就需要将原来下的程序移植到下,但是各个硬件厂商目前还没有 提供通信卡在下的驱动,所以开发下的卡驱动成为项目推行中的关键一环。

本文主要针对研华的双口卡 3680 进行分析,介绍在系统下进行底层 设备驱动开发的方法并提供通信的实例。

范文先生网收集整理 1 总线通信协议及通信卡介绍总线是德国公司 20世纪 80 年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换 而开的一种串行数据通信协议。

它是一种多主总线,废除了传统的站地址编码,而代之以对通信数据 块进行编码。

这种方法使网络内节点个数在理论上不受限制,扩展格式中的 29 位 的标识码便可以定义 229 个不同的数据块。

在本项目中使用的是研华的 3680, 这是一块嵌入式 104 的双口总线通 信卡;控制器采用的独立控制器 1000 芯片;收发器采用的 82250,可以同 时操作两个网络,提供高达 1 的传输速度。

3680 支持很宽的中断范围中断 3、4、5、6、7、9、10、11、12、15, 同时 1000 的光电隔离提供系统高可靠性。

汽车CAN总线监视器windows应用软件研发概要设计说明

汽车CAN总线监视器windows应用软件研发概要设计说明

软件概要设计3.1 引言3.1.1 编写目的本章对系统的设计做一个初步总结,介绍系统的主要流程和主要设计概念。

3.1.2 项目背景(1)项目委托单位:大学软件学院开发单位:大学软件学院06级本科生。

主管部门:大学软件学院。

(2)该软件系统的说明:本次工程为大学2006级毕设题目。

为了模拟车载ECU间的CAN数据通信,本研究课题使用开发完成的硬件与个人编写的PC软件,完成CAN数据信息的采集、发送及显示。

目的在于模拟ECU之间的通信,了解软硬件通信的接口,完成Windows下C#程序的开发,学会XML文档的使用。

3.2 任务概述3.2.1 目标本研究课题使用Windows应用软件编程环境,相应的已经完成嵌入式开发的CAN数据控制器,以及RS232通信协议来完成PC对CAN数据的信息的解析与控制。

理解CAN监视器的特殊寄存器设定值计算和CAN信息解析及图形图线的绘制,运用所学的XML和.NET Windows编程等相关知识,在VisualStudio C#2008环境下实现C#编程,深刻理解软件开发的各个过程,灵活运用统模语言及相关工具进行软件的分析与设计。

3.3 总体设计3.3.1 处理流程本系统最主要的功能为发送信息和接收信息,状态设置等活动图如图3-1:图3-1 活动图3.3.2 功能分配图3-3显示了该系统的功能模块划分:图3-3 系统功能模块图3.4 接口设计 3.4.1 外部接口用户界面采用VB 进行编程,用户界面如图3-4:Windows 环境下汽车CAN 总线监视器软件信息发送、接收与显示设置不同工作模式发送Message 显示Message 曲线显示Signal 寄存器值的计算与设置ACRn 、AMRn 值的计算ACRn 、AMRn 的设置BTR0、BTR1值的计算BTR0、BTR1的设置XML 文件的存储与修改设置添加Singal 及Message 信息为工程添加Signal 并设置属性值为工程添加Message 并设置相应属性设置Signal 与Message的映射关系图3-4 系统界面截图图3-5中setting里面可以设定要使用的端口号,如果端口未连接设备则会报错,setting里面还可以设定COM速率(本实验由于使用USB所以不用设)和CAN 总线的波特率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

组态软件环境下的CAN总线通信适配卡驱动程序的开发
发表时间:2018-08-20T11:02:13.703Z 来源:《电力设备》2018年第15期作者:耿庆州
[导读] 摘要:CAN总线是控制局域网络(ControlAreaNetwork)的简称,最早用于汽车内部测量和执行部件之间的数据通讯,由德国BOSCH公司提出,是一种具有高可靠性、支持分布式控制和实时控制的串行通讯网络。

(江苏徐工工程机械研究院有限公司江苏省徐州市 221004)
摘要:CAN总线是控制局域网络(ControlAreaNetwork)的简称,最早用于汽车内部测量和执行部件之间的数据通讯,由德国BOSCH公司提出,是一种具有高可靠性、支持分布式控制和实时控制的串行通讯网络。

CAN总线的速率可达1Mbps/40m,其最大传输距离可达5Kbps/10Km,这些卓越性能使CAN总线得以在全球范围内一直保持高速发展,公认为极具发展前途的现场总线之一。

本文描述了CAN总线的特点和通讯适配卡的工作原理,以及基本的通讯协议,然后详细阐述了通过DDE通讯在组态软件环境下对CAN适配卡的驱动编程,最后说明了上位机与CAN 节点通讯的组态实现。

关键词:CAN总线;适配卡;组态软件
一、前言
目前国内外CAN总线设备开发厂商设计的CAN总线适配器大多采用ISA和PCI接口。

组态王没有提供CAN通信适配卡的驱动程序,但它提供了DDE(动态数据链接)接口,因此我们可以用VB编制一个起桥梁作用的程序来和硬件设备打交道,用VB完成与CAN通信适配卡的数据通信,然后通过DDE与组态王进行数据交换,而组态王主要实现上位机监控界面的组态。

二、基本通信协议
当上位机需要与子节点进行通信时,可向CAN网络节点发送信息帧,CAN网络中的节点接收到信息帧后,通过判别标识符的低3位来区别信息帧的类别后,再将节点所需要的数据发送出去。

当网络节点发生突发事件时,可随时向上位机报告,上位机同样也是通过标识符的低3位来识别数据类型。

上位机发给CAN节点的命令根据信息帧的第3字节的内术容分为四种:
(1)请求数据(01H);
(2)发送数据(02H);
(3)发控制参数(03H);这条命令是在上位机程序对网络进行配置时用来向网络的各个节点发送控制参数的,发送时控制参数的放置顺序依次是:模块号参数、节点号参数、波特率参数、输出方式参数、屏蔽控制参数。

(4)请求控制参数(04H);这条命令是上位机程序查看整个网络的配置时用来向网络的各个节点请求其控制参数的,在收到各个节点发来的控制参数后,整个网络的配置情况就一目了然了.
三、设置及编程
3.1动态数据交换的特点
MicrosoftDDE是Windows系统下应用程序之间最为可靠的数据传递方式。

需要进行数据传输的两个应用程序之间就必须建立Server一Client模式的通讯关系,也就是DDE连接关系。

其缺点是,当数据交换的数据量比较大时,比如500个DDE项目进行工作时,就须需要在两个应用程序间建立500个“热链路”(一个特定项目),这将消耗更多的资源,500个项目的数据值同时变化后,需要进行500次DDE通讯,在数据量大、变化频繁的实时工业控制应用中,速度会变得很慢。

BlockDDE可以很好地解决这一“瓶颈”问题。

通过BlockDDE,在Server程序与Client程序之间只需要建立一个“热链接”,Server端程序的多个数据同时发生变化之后,只需要一次DDE通讯,就可以传递给Client程序,它将使得整个系统行速度快捷无比,而且开发一般的DDE数据交换程序非常繁琐,而使用BlockDDE,将使得开发过程十分简单。

它以动态链接库的形式,向用户提供了10个函数用来完成初始化、建库、收发数据等功能。

在本应用中数据流向如图1所示。

图1 BlockDDE建立的热链路
3.2设置
建立DDE之前,客户程序必须填写服务器程序的三个标识名。

定义DDE设备的设置是通过应用程序名(application)、主题(topic)、项目(item)这3个标识名来预定的。

DDE接口设置步骤如下:
(1)在工程浏览器中新建DDE设备,DDE设备连接对象名为DDECANI;(2)服务程序名为HK-CAN10S,对应于VB中的Application的Title;(3)话题名为VBFrmCard,对应于VB中的窗体名称;(4)数据交换方式为标准Windows项目交换;(5)对数据字典中的I/O变量的设置,每个变量的连接设备选择DDECANI;(6)每个变量的项目名设定为VB中的控件名;(7)在画面中建立数据连接。

VB的DDE接口设置步骤如下:
(1)建立一个VB项目,打开VB的DDE项目属性,将Ap-plication的Title设HK-CAN10S;(2)设定DDE运行的窗体名称:FrmCard;(3)打开DDE运行的窗体属性,设置LinkMode=1,Link-Topic=VBFrmCard;(4)将需要交换的数据变量绑定到窗体中的控件上,记住控件名称。

3.3VB程序设计
建立的VB项目能够实现窗体加载、卸载,针对CAN适配卡完成发送数据和接收数据的功能,下面对它们分别进行介绍。

3.3.1加载、卸载程序
VB窗体中将文本框Text1的Name属性设置为send_txt,Text2的Name属性设置为rev_txt,Text3的Name属性设置为view_ready,visible属性设置为False。

在窗体的加载程序中加入指令。

初始化通信适配卡是利用通信适配卡所提供的函数对适配卡的基地址、中断号、波特率、站地址和接收屏蔽字进行设置。

这里通信适配卡的基地址为280H,中断号为7,波特率为变量bps_CAN的值,站地址设为00H,接收屏蔽字设为FFH,即接收网上的所有信息包。

3.3.2发送数据程序
VB中编程采用事件驱动机制。

本程序只有在文本框控件send_txt的内容发生变化,即组态王有数据需要适配卡向网络上发送时才会启动。

3.3.3接收数据程序
本程序是由适配卡提供的控件的一个事件驱动的。

在将转化完毕的数据传送给组态网之前,要判断组态网是否已将上次的数据处理完毕,然后再做相应的处理。

若不进行这样的判断,就会产生丢失中间接收到的数据帧的情况。

因为如果组态网还未将上次的数据取走,再次向它传送数据会将上次的数据覆盖,从而使得未处理的数据丢失。

四、程序应用
组态王软件运行于WINDOWS中文平台,可快速地开发出监控软件。

在CAN控制网络状态监测的界面中,组态王程序主要实现的功能有: (1)实现对CAN网络节点的节点号、波特率及输出方式等参数的设置;(2)实现对测控装置节点的多通道数据(包括破岩力、钻杆数量等)的显示;
(3)实现对报警值的设置。

五、结束语
组态王软件与VB通过DDE通讯协同工作,可完成对CAN控制网络的监控。

实践证明这种系统不但可靠、实用,而且便于设计,易于扩充,具有较高的推广价值。

参考文献
[1]邬宽明CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996.
[2]范逸之等.利用VisualBasic实现串并行通信技术[M].北京:清华大学出版社,2001.
[3]北京亚控科技发展有限公司组态王6.0使用手册北京:亚控公司,2001.
[4]计小军网东兴基于CAN总线的智能馈线终端的研究[J]微计算机信息2006,2-2:111-113.
[5]胡锦晖胡大斌齐文娟采用VB实现组态软件与下位机的串行通信方法研究[J]微计算机信息2005,11-1.。

相关文档
最新文档