CAN总线通信系统上位机通信软件的设计说明
CAN总线数据通讯功能设计
CAN总线数据通讯功能设计摘要:近年来,社会进步迅速,我国的智能化建设的发展也有了改善。
CAN(ControllerAreaNtework)即控制器局域网络,最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。
现代汽车越来越多采用电子装置控制,如发动机的定时、注油控制、加速、刹车、自动泊车、倒车雷达及复杂的制动防抱死系统(ABS)等。
这些电子装置的控制需实时检测及交换大量的数据,仅使用传统点对点的连接方式来实现子系统之间的随机通信,不但繁琐、昂贵,且难以解决问题。
采用CAN总线上述问题就能得以很好的解决。
因为CAN总线为多主站总线,各节点可在任意时刻向网络上的其他节点发送信息,不分主次,通信灵活;采用短帧结构,数据传输时间短,最大传输数率可达1Mbps(通信距离小于40m)。
CAN总线技术由于高性能、高可靠性及其独特的设计备受人们的重视,经过十几年的发展,该技术已成为所有车载电子控制系统互联、互通的标准,广泛应用于汽车电子监测系统。
关键词:CAN总线;数据通讯;功能设计引言随着汽车的普及,人们对汽车舒适度要求越来越高,使得汽车电子技术发展迅速,越来越多的汽车电子控制单元(ElectronicControlUnit,ECU)被应用于汽车控制。
诊断功能的实现是ECU开发过程中的重要部分,对诊断功能进行集成测试是为了验证功能实现与设计规范的一致性。
1方案的实现电路主要由四个部分构成:微控制器、独立CAN通信控制器、CAN总线收发器、高速光耦。
微控制器负责CAN通信控制器的初始化。
CAN通信控制器有发送和接收两端,它能够同时读写总线,这个功能对于错误检测与总线仲裁都很重要,因此通过控制CAN通信控制器实现数据的接收和发送通讯任务。
CAN通信控制器要通过CAN总线收发器上的线驱动器和总线接口进行总线的读写,总线是通过典型的双绞线传输差分电压信号,处理CAN总线两端的节点应设置跨接在两根双绞线间的终端匹配电阻。
CAN总线设计(最终版)(1)
CAN-USB适配器设计*****指导老师:***学院名称:*****专业班级:****设计提交日期:**年**月摘要随着现场总线技术和计算机外设接口技术的发展,现场总线与计算机快速有效的连接又有了更多的方案。
USB作为一种新型的接口技术,以其简单易用、速度快等特点而备受青睐。
本文介绍了一种基于新型USB接口芯片CH372的CAN总线网络适配器系统的设计,提出了一种使用USB接口实现CAN总线网络与计算机连接的方案。
利用芯片CH372可在不了解任何USB协议或固件程序甚至驱动程序的情况下,轻松地将并口或串口产品升级到USB接口。
该系统在工业现场较之以往的系统,可以更加灵活,高速,高效地完成大量数据交换,并可应用于多种控制系统之中,具有很大的应用价值。
关键词:USB;CH372;CAN;SJA100;适配器目录1.设计思想 (3)2.CAN总线与USB的转换概述 (4)3. 适配器硬件接口设计 (5)3.1 USB接口电路 (5)3.2 CAN总线接口电路 (7)4.USB通用设备接口芯片CH372 (8)4.1 概述 (8)4.2 引脚功能说明 (9)4.3 内部结构 (9)4.4 命令 (10)5.软件设计 (10)5.1 概述 (10)5.2主监控程序设计 (12)5.3 CAN和USB接口芯片的初始化 (13)5.4 CAN报文的发送 (15)5.5 CAN报文的接收 (17)5.6.自检过程 (19)5.7 USB下传子程序设计 (20)5.8 USB上传子程序设计 (22)5.9.USB—CAN转换器计算机端软件设计 (23)6. 抗干扰措施 (25)7. 估算成本 (26)8. 应用实例介绍 (27)9 总结及设计心得 (28)10 参考文献 (28)1 设计思想现场总线网络技术的实现需要与计算机相结合。
目前,在微机上扩展CAN总线接口设备一般采用PCI总线或者RS-232总线。
PCI虽然仍是高速外设与计算机接口的主要渠道,但其主要缺点是占用有限的系统资源、扩展槽地址;中断资源有限;并且插拔不方便;价格较贵;而且设计复杂、需有高质量的驱动程序保证系统的稳定;且无法用于便携式计算机的扩展;RS-232虽然插拔方便,但是传输速率太慢。
c#通过串口及CAN模块实现上位及下位机通讯
c#通过串⼝及CAN模块实现上位及下位机通讯⽬录前⾔⼀、串⼝、CAN总线⼆、使⽤步骤1.RS232串⼝通讯(指令下发与接收)2.CAN总线通讯总结前⾔学习及⼯作中我们经常会遇到上位机与下位机通讯等⼯作,结合场景使⽤不同的通讯⽅式实时通讯,以下为⼯作中遇到的上位机与下位机进⾏实时通讯,采⽤RS232串⼝和CAN总线形式进⾏⽹络通讯。
⼀、串⼝、CAN总线串⾏接⼝简称串⼝,也称串⾏通讯接⼝或串⾏通讯接⼝(通常指设备的COM接⼝),是采⽤串⾏通信⽅式的扩展接⼝。
串⾏接⼝(Serial Interface)是指数据⼀位⼀位地顺序传送。
其特点是通讯简单,只要⼀对传输线,通过设备设置传输线端⼝等参数就可以实现双向通信,从⽽⼤⼤降低了成本,特别适⽤于远距离通信,但传送速度较慢。
CAN是控制器局域⽹络(Controller Area Network, CAN)的简称,是由以研发和⽣产汽车电⼦产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应⽤最⼴泛的现场总线之⼀。
在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌⼊式⼯业控制局域⽹的标准总线,并且拥有以CAN为底层协议专为⼤型货车和重⼯机械车辆设计的J1939协议。
上位机与与下位机制定好通⽤协议通过CAN模块将数据进⾏16进制转换实时通讯。
⼆、使⽤步骤1.RS232串⼝通讯(指令下发与接收)代码如下(⽰例)://命名空间引⼊using System.IO.Ports;public SerialPort serialPort;//定义串⼝对象类public//定义连接⽅法public void Connect(){serialPort = new SerialPort();serialPort.BaudRate = 1200;//波特率serialPort.PortName = "COM1";serialPort.Parity = Parity.None;//校验法:⽆serialPort.DataBits = 8;//数据位:8serialPort.StopBits = StopBits.One;//停⽌位:1try{serialPort.Open();//打开串⼝serialPort.DtrEnable = true;//设置DTR为⾼电平serialPort.RtsEnable = true;//设置RTS位⾼电平serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);//DataReceived事件委托byte[] WriteBuffer = Encoding.ASCII.GetBytes("下发指令");//下发serialPort.Write(WriteBuffer, 0, WriteBuffer.Length);}catch (Exception ex){//打开串⼝出错,显⽰错误信息Console.WriteLine("串⼝打开失败");}}2.CAN总线通讯代码如下(⽰例)://⾸先与CAN模块进⾏连接public TcpClient mTcp = new TcpClient();private const int READ_BUFFER_SIZE = 1000;private byte[] readBuffer = new byte[READ_BUFFER_SIZE + 1];public delegate void DoReadEventHandle(object sender, string e);public event DoReadEventHandle ReadedEvent;public event DoReadEventHandle LogEvent;public string recStr { get; set; }public string HandString { get; set; }public bool Connect(){//Can模块ipstring mIPAddress = "192.168.1.1";IPAddress hostIPAddress = IPAddress.Parse(mIPAddress);//端⼝int mPort = 8080;IPEndPoint endIP = new IPEndPoint(hostIPAddress, mPort);try{mTcp = new TcpClient(mIPAddress, mPort);DateTime Savetime = DateTime.Now;TimeSpan n = new TimeSpan();while (true){n = DateTime.Now - Savetime;if (n.TotalMilliseconds > 1000 || mTcp.Client.Connected) break;}if (!mTcp.Client.Connected) return false;mTcp.GetStream().BeginRead(readBuffer, 0, READ_BUFFER_SIZE, DoRead, null);}catch (Exception){return false;}return true;}private void DoRead(IAsyncResult ar){try{int BytesRead = mTcp.GetStream().EndRead(ar);if (BytesRead > 0){string s = "";for (int i = 0; i <= BytesRead - 1; i++){s = s + string.Format("{0:x2}", readBuffer[i]) + " ";}Console.WriteLine(s);var t = s.Split(new string[] { "aa 00 ff 00 00 00 00 00 00 00 00 00 55" }, StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(ex => ex != " ");if (!string.IsNullOrEmpty(t)){recStr += t + "\r\n";if (HandString == recStr && LogEvent != null){HandString = null;LogEvent(this, "握⼿成功!");}} mTcp.GetStream().BeginRead(readBuffer, 0, READ_BUFFER_SIZE, DoRead, null);}}catch (Exception e){mTcp.Client.Close();}}//数据发送public void sendCan(string temperature, bool check){HandString = "0xC0 0x02 0x02 0x00 0x00";string[] tmp = temperature.Split(' ');var buf = new byte[22];for (int i = 0; i < buf.Length; i++){buf[i] = 0;}for (int i = 0; i < tmp.Length; i++){try{buf[i] = Convert.ToByte(tmp[i], 16);}catch (Exception e){buf[i] = 0;}}SendData(buf, 0, 13, check);}public bool SendData(byte[] sendBytes, int mStart, int mLen, bool check = true) {if (!check) return false;try{lock (mTcp.GetStream()){mTcp.GetStream().Write(sendBytes, mStart, mLen);}return true;}catch (Exception x){return false;}}总结1、RS232串⼝通讯接⼝的信号电平值较⾼,易损坏接⼝电路的芯⽚,传输速率较低,传输距离有限。
CAN通信下的电动汽车上位机系统开发
CAN通信下的电动汽车上位机系统开发提纲:1. CAN通信的基本原理及在汽车上位机系统中的作用2. 电动汽车上位机系统的开发流程与注意事项3. CAN通信中数据传输与处理的技术及其优化策略4. 电动汽车上位机系统开发中的市场需求和未来发展方向5. 实际案例分析:国内外电动汽车上位机系统的开发及应用提纲一:CAN通信的基本原理及在汽车上位机系统中的作用CAN(Controller Area Network)通信是一种高可靠性、高带宽、多主从并行通信的网络协议,早期用于汽车工业中,现已逐渐被广泛应用于控制领域。
CAN总线可以实现多设备的通信和控制,能够满足汽车电子系统对实时性、高可靠性的需求。
在电动汽车上位机系统中,CAN总线承担了重要的通信作用,实现了各个电子模块之间的信息交互和协作。
本部分内容将对CAN通信的基本原理、数据传输模式和在汽车系统中的应用作简要介绍。
CAN通信的基本原理CAN是一种基于广播式共享媒体和分时多路复用通信的总线协议。
CAN节点之间的通信是通过CAN总线完成的,总线上可以同时存在多个节点,节点之间通过标识符进行数据交换。
CAN总线的数据链路层采用了对等的生产者-消费者机制,所有节点都可以作为数据发送节点,同时也可以是数据接收节点。
当某个节点发送数据时,所有节点都会接收到数据,但只有ID符合自身设定的节点才会处理数据。
此外,CAN通信还包含了帧同步和CRC校验等措施,保证了通信的可靠性和数据的完整性。
CAN通信在汽车上位机系统中的作用在电动汽车的控制系统中,CAN总线起到了重要的作用。
在整个电动汽车控制系统中,各种传感器、操控器以及执行器均需要通过CAN总线进行数据的交换和控制指令的传递。
以电机控制器为例,其需要通过CAN总线和电动汽车控制器进行数据交互,判断电机是否正常开启、控制电机的转速和电流等;同时,电动汽车控制器也需要获取电机的相关数据,用于反馈车辆加速度、制动力等信息,实现整车控制。
CAN总线软件编程流程
CAN总线软件编程流程1.初始化CAN总线接口:先选择一个适合的硬件接口,根据硬件接口的数据手册与相应的寄存器进行初始化设置,包括波特率、工作模式等通信参数的配置。
2.配置CAN总线参数:设置CAN总线的参数,如通信速率、帧格式、收发过滤器等。
这些参数的设置要根据实际应用需求进行。
3.监听CAN总线:使能CAN总线接收中断,通过中断响应的方式获取CAN总线上的数据帧。
这样可以实时监听总线上的数据。
4.发送CAN数据帧:将需要发送的数据组成CAN数据帧,设置好帧的标识符、数据长度、数据内容等信息,并通过CAN总线接口发送出去。
在发送过程中,可以根据需要设置发送缓冲区,以便处理发送失败的情况。
5.接收CAN数据帧:通过CAN总线接收中断获取到新的数据帧,解析出数据帧的标识符、数据长度、数据内容等信息,并进行处理。
可以根据数据帧的标识符对接收到的数据进行分类和分析。
6.处理CAN错误:监测CAN总线上的错误,如位错误、格式错误等,及时进行处理并进行相应的错误处理流程。
可以通过错误中断、错误计数器等方式实现错误检测和处理。
7.进行其他相关操作:在CAN总线通信过程中还可能涉及到其他的相关操作,如同步、节点管理、故障检测等。
根据实际应用需求进行相应的处理。
8.关闭CAN总线接口:在软件结束运行之前,应该关闭CAN总线接口,释放资源,并进行相关清理操作,确保资源的正常释放。
9.错误处理和异常流程:在CAN总线通信过程中,可能会遇到一些错误和异常情况,比如通信超时、数据出错等。
在软件编程时需要考虑这些异常情况,设置相应的错误处理和异常流程,避免系统崩溃或数据丢失。
总的来说,CAN总线软件编程流程包括初始化CAN总线接口、配置CAN总线参数、监听CAN总线、发送CAN数据帧、接收CAN数据帧、处理CAN错误、进行其他相关操作、关闭CAN总线接口以及错误处理和异常流程等步骤。
通过这些步骤,可以实现CAN总线的稳定通信和数据交换。
上位机软件设计范文
上位机软件设计范文1.需求分析:首先需明确用户对软件的需求和期望,了解所需的功能需求、系统架构需求、用户界面需求等,并记录下来。
2.系统设计:根据需求分析得出的结果,将其转化为系统设计。
这包括确定软件的总体架构、应用场景、模块划分、通信协议、数据结构等。
3.软件开发:在系统设计的基础上,进行软件开发。
这包括编写代码、测试、调试等过程。
高效的编码和清晰的代码结构是保证软件质量的重要因素。
4.数据库设计:对于需要存储和管理大量数据的上位机软件,数据库的设计尤为重要。
数据库需要能够存储用户输入的数据、设备状态数据等,并能进行高效的查询和更新。
5.用户界面设计:用户界面设计需要考虑用户的使用习惯和操作习惯,保证用户界面清晰易懂、交互友好。
根据需求分析,设计一个直观、功能全面的用户界面。
6.通信协议设计:上位机软件通常需要与下位设备或控制器进行通信。
通信协议设计要考虑通信的可靠性、实时性和扩展性。
协议设计需要明确通信方式、通信周期、数据格式等。
7.测试与验证:软件开发完毕后,需要进行系统测试和验证。
测试包括单元测试、集成测试、系统测试等。
确保软件符合用户需求并能够稳定可靠地运行。
8. 部署和维护:软件开发完毕后,需要将软件部署到实际使用环境中。
同时,需要进行软件的维护和升级,及时修复软件中的bug,并添加新的功能或改进用户界面。
总结而言,上位机软件设计需要具备系统性思考、全面的功能设计、高效的编码、可靠的通信和数据管理以及良好的用户界面设计。
通过上述步骤,可以有效地设计出一个满足用户需求并具备良好扩展性的上位机软件。
CAN总线节点设计说明
一、现场总线、现场总线系统(FCS)、现场总线智能节点现场总线现场总线是一种工业数据总线,它主要解决现场的智能化仪表、控制器、协作机构等现场设备间的数字通讯以与这些现场设备和高级控制系统之间的信息传递问题。
近年来,国际上形成了多种成熟的现场总线,较为著名的有过程现场总线PROFIBUS(Process Fieldbus)、基金会现场总线FF(Foundation Fieldbus)、控制器局域网现场总线CANbus(Control Area Network)、可寻址远程传感器数据通路(HART)和局部操作网络(LONWORKS)。
从资料分析和应用实践来看,FF、LONWORKS或HART与国的技术状况和承受能力有一定距离。
CAN总线更适合我国国情,其通信芯片价格较为低廉。
本项目研制的智能节点就采用了CAN 总线技术。
CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测量仪器之间的数据交换而开发的一种串行数据通信协议。
他是一种多主总线,通信介质可以使双绞线、同轴电缆和光导纤维。
通信速率可达1Mbps 。
归纳起来,CAN总线主要有以下特点:(1)、网络中任一节点均可作为主节点,主动发送数据。
解决了许多传统总线的从节点无法主动向其他节点发送数据的难题,给用户的系统设计提供了极大的灵活性。
(2)、CAN网络中节点可分优先权满足不同要求。
(3)、抗干扰能力强,速度快,且工程简单,普通双绞线40米时可达1Mbps 。
(4)、调试维护方便。
(5)、CAN用户可以定义自己的CAN语言,即子层数据协议,然而这个协议需遵守ISO/OSI 参考模型的第7层(应用层)标准。
当然,用户也可以使用标准的CAN子层数据协议,如工业标准CAN协议Allen-Bradley’s DEVICE net ,直接利用它们进行方案开发,通过这些数据协议,建立了应用层与物理层之间的联系。
(6)、CAN协议采用CRC校样并可提供相应的错误处理功能,保证数据的可靠性。
CAN总线数据通信系统的设计
封面作者:PanHongliang仅供个人学习CAN总线数据通信系统的设计摘要现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。
它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
CAN(ControllerArea Network)属于现场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。
与其它现场总线比较而言,CAN总线具有通信速率高、容易实现、可靠性高、性价比高等诸多特点。
本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个模块之间的数据通讯。
系统主要由四部分所构成:PC机、微控制器80C51、独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250。
微处理器80C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等通信任务。
CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。
本系统通过扩展CAN总线控制器SJA1000,在单片机系统中实现了CAN总线的接口,并且编写了SJA1000的驱动程序,通过读写其的内部寄存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等基本操作;利用各基本操作,完成了对SJA1000的初始化,并且实现了数据发送和接收。
目录第1章原理与方案31.1设计目的与要求31.2CAN总线介绍31.3设计方案31.3.1 硬件设计方案41.3.2 软件设计方案5第2章硬件连接与说明52.1硬件连接52.1.1 模块使用说明52.1.2 实验箱连线62.2CAN总线控制器SJA100062.3CAN控制器接口PCA82C2506第3章软件流程图及说明错误!未定义书签。
3.1软件流程图73.1.1 主程序流程图73.1.2 初始化子程序流程图73.1.3 发送数据子程序流程图错误!未定义书签。
CAN总线通信接口及程序设计毕业设计
机电工程学院毕业设计说明书设计题目:___________________________________________2012 年5 月21 日1 CAN总线介绍1.1 CAN总线的发展背景随着汽车产业的发展,需要一种更利于信息数据传输交换的通信协议。
汽车中的各种电子控制系统需要较高的技术支持,而随着汽车的发展,汽车是否安全、是否便利、成本是否低、是否舒适都已成为人们首要考虑的事情。
但是传统的汽车控制技术已不足以满足人们越来越高的要求,也已不适以汽车的发展方向。
20世纪80年代,德国Bosch公司着手研究用于汽车产业的新的通信协议及控制方法,并首先提出了CAN总线控制系统。
这一崭新的网络协议使得汽车产业得到了飞速的发展。
CAN总线最明显的特点是最大程度地减少了汽车控制系统中的线束的数量及长度,另外还大大提高了系统控制的可靠性和稳定性。
在没有CAN总线协议之前,一辆汽车中用于各种控制通信的线束的总长度达3公里之长,严重影响了汽车的通信速度和通信精度。
并且还使汽车的整体结构繁冗复杂,可靠性低,成本高,难以维护。
因此CAN总线的出现无疑具有重大的意义和作用。
作为一种新的网络通信协议,CAN总线不仅减少了汽车中线束的长度,还提高了汽车的整体性能,极大的促进了汽车产业的发展。
CAN总线刚被提出的时候,仅仅应用于汽车产业上,但CAN总线通信协议的性能和可靠性经过多年的检验,已被应用于越来越多的产业,比如航空、船舶、机床等产业设备方面。
仅仅二十多年的发展,CAN总线便已成为自动化领域技术的潮流。
CAN总线是串行通信网络。
传统运用的是基于R线构建分布式控制系统,这种传统的控制系统是基于通信节点的地址编码的,因此其结构复杂,直接导致系统的通信效率不高,并且控制的可靠性能低。
CAN总线通过每个网络节点进行数据通信,每个节点可以互相收发数据,CAN总线协议对通信数据编码,不对节点地址编码,使各个节点可以同时接收到相同的数据,大大增强了数据通信的实时控制及传输性能。
CAN总线详细教程可修改全文
功能
2个以上控制器所组成的Canbus系统 当用2个以上的控制器连接在Canbus总 线上(如图所示),用逻辑1来表示断开 和用逻辑0表示闭合。不考虑其他总线规 则情况下,总线会出现下图的情况: 1.任何开关闭合,总线上的电压为0伏 2.所有开关断开,总线上的电压为5伏
集中控制系统:由一个电子控制单元(ECU)同时 控制多个工作装置或系统的电子控制系统。如汽车 底盘控制系统。
控制器局域网络系统(CAN总线系统):由多个电 子控制单元(ECU)同时控制多个工作装置或系统, 各控制单元(ECU)的共用信息通过总线互相传递。
带有中央控制单元的车
带有三个中央控制单元的车
基于CAN总线的汽车电器网络结构
发动机 自动变 ABS/TCS 安全气 电控悬 巡航控 动力转 电机控 电池管
ECU 速器ECU ECU
囊ECU 架ECU 制ECU 向ECU 制ECU 理ECU
高速总线
E整EC整CU车U(车(控网控网制关制关器)器)
低速总线
故障诊断 ECU
灯光控 刮雨洗涤 电动座 门锁防 电动车 后视镜 气候控 警告信 仪表显 制ECU 控制ECU 椅ECU 盗ECU 窗ECU 喇叭ECU 制ECU 号ECU 示ECU
求Байду номын сангаас
总之,使用汽车网络不仅可以减少线束,而且 能够提高各控制系统的运行可靠性,减少冗余 的传感器及相应的软硬件配置,实现各子系统 之间的资源共享,便于集中实现各子系统的在 线故障诊断。
Canbus的发展历史
大众公司首次在97年PASSAT的舒适系统 上采用了传送速率为62.5Kbit/m的 Canbus。
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(转换技术)紧密结合的产物。
它在适应范围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。
基于STM32的CAN总线上下位机通信实验设计
基于STM32的CAN总线上下位机通信实验设计作者:刘泰廷李新建来源:《电脑知识与技术》2017年第05期摘要:随着技术的成熟和设备的完善,CAN总线在数据的实时传输和自动控制中展现出良好的灵活性与可靠性。
笔者以STM32为主控芯片搭建硬件电路,利用软件对其进行初始化设置,上位机与电路的连接使用USB—CAN转换器,并采用Visual C++的MFC编写的CAN 调试界面实现数据的实时收发,使上下位机完成通信。
本实验对于CAN总线的使用有一定的指导作用。
关键词:STM32;CAN总线;MFC;通信中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)05-0199-02CAN简称为控制器局域网络(Controller Area Network),它是由研发和生产汽车电子产品著称的德国BOSCH公司开发的,是国际上应用最广泛的现场总线之一,并最终成为国际标准(ISO11519)。
近年来,由于它的高可靠性和良好的错误检测能力受到人们的关注,CAN 总线协议逐渐成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,被广泛应用于汽车控制系统和环境温度恶劣、电磁辐射强的工业环境。
1 实验系统结构组成利用CAN总线可以将传统分布式控制系统的功能分散到不同的现场节点中,本实验只选用一个节点作为下位机的收发模块。
实验的系统框图如图1所示,系统主要分为三个部分:上位机(PC机)、CAN转换器、下位机(CAN收发模块电路)。
一般调试员的PC机(多为笔记本电脑)接入CAN总线往往没有串行接口,为此我们采用USB—CAN协议的转换器接入CAN总线,实现数据之间的转发。
下位机是以STM32F103RCT6单片机作为主控芯片的CAN 收发电路,主要完成数据采集和处理的任务,并实现与CAN总线的数据互传。
上位机利用MFC编写的控制界面,对CAN总线上收到的数据进行显示,同时也可以完成向CAN总线发送数据的指令。
CAN总线系统的设计与实现
CAN总线系统的设计与实现CAN(Controller Area Network)总线是一种用于多节点通信的串行通信协议,最初由德国BOSCH公司于1986年开发用于汽车电子系统中。
随着技术的不断发展,CAN总线逐渐应用于各种工业和嵌入式系统中。
在设计CAN总线系统时,首先需要选择合适的CAN控制器。
CAN控制器是实现CAN通信的核心,其功能包括CAN消息的发送和接收、硬件过滤和错误检测等。
常见的CAN控制器芯片有TI的MCP2515、Microchip的MCP2510等。
选择合适的CAN控制器要考虑通信速率、节点数量、工作温度和可靠性等因素。
传输媒介是CAN总线系统中节点之间传输数据的介质。
常用的传输媒介有双绞线、光纤和无线。
双绞线是最常用的传输媒介,其优点是成本低、抗干扰能力较强;光纤适用于传输距离较长和电磁噪声较多的环境;无线传输适用于节点位置变动频繁的场景。
选择传输媒介时要综合考虑通信距离、成本和抗干扰能力等因素。
节点设备是CAN总线系统中实际参与通信的设备。
节点设备的功能包括CAN消息的生成和解析、CAN总线的物理层连接和节点地址的配置等。
节点设备可以是传感器、执行器、控制器等,可以是硬件设备也可以是软件模拟。
在软件方面,CAN总线系统中的核心是CAN协议栈。
CAN协议栈包括物理层、数据链路层和应用层。
物理层负责将CAN消息转化为电信号传输;数据链路层负责CAN消息的错误检测和纠正;应用层负责解析CAN消息的内容并进行相应的处理。
常见的CAN协议栈有CANopen、J1939和DeviceNet等。
在设计CAN总线系统时需要考虑以下几个方面:1.系统拓扑结构:包括总线结构和节点分布。
总线结构可以是总线型、星型或树型;节点分布要考虑节点之间的通信距离和可靠性要求。
2. 通信速率:通信速率是指CAN总线上消息的传输速率,取决于CAN控制器的时钟频率。
通信速率需要根据实际应用需求确定,通常有几百kbps到几十Mbps不等。
Can通信模块详细设计说明书
Can.cpp模块设计说明1. 总则:传送故障记录数据或运行记录数据时,不传送参数数据和实时数据。
传送参数数据和实时数据可同时传送。
在界面层:1.读故障记录数据BUTTON和运行记录数据BUTTON和记录实时数据BUTTON没有按下,参数没有操作时,才能按下读故障记录数据BUTTON或运行记录数据BUTTON。
否则弹出信息框。
2.按下故障记录数据BUTTON后,把运行记录数据BUTTON和记录实时数据BUTTON变灰,参数MENU和参数界面上的读和修改BUTTON变灰,故障记录数据读完后,上述按钮复原。
对按下运行记录数据BUTTON作同样处理。
3.按下记录实时数据BUTTON时,把故障记录数据BUTTON和运行记录数据BUTTON变灰。
按下停止记录实时数据BUTTON时,把故障记录数据BUTTON和运行记录数据BUTTON复原。
4.对参数上载和修改时,把故障记录数据BUTTON和运行记录数据BUTTON变灰,完成操作后把故障记录数据BUTTON和运行记录数据BUTTON复原。
CAN和以太网类似,相应7种事件:关闭CAN、实时数据请求、读参数、写参数、发送心跳报文,读故障记录,读运行记录。
2 功能模块类名为:Class Can类对象定义在Can.cpp中,是一个全局对象。
Class Lan g_Can;该模块的功能为:1.通过USB转CAN与下位机进行实时数据请求和参数的上传下载, 读故障记录,读运行记录;2.通过PCI插卡与下位机进行实时数据请求和参数的上传下载, 读故障记录,读运行记录;3.出错处理。
3 流程逻辑CAN部分由线程CanThread()完成5个事件。
OpenCan(DWORD DevType,DWORD DevIndex,DWORD Reserved)函数通过调用API函数VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved)打开CAN;CloseCan(DWORD DevType,DWORD DevIndex)函数通过调用API函数VCI_CloseDevice(DWORD DevType,DWORD DevIndex)关闭CAN;StartCanThread()函数用于开启Can线程;SuspendedCanThread()函数用于关闭线程;CanThread()为Can线程函数,用于执行五种事件:关闭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(转换技术)紧密结合的产物。
它在适应围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。
基于CAN总线的PLC与上位机监控系统的通信设计
现今的工控计算机可配备多种高级语言 , 提 1 L .P C结构的基本组成 1 供优 良的软件平台 , 开发各种应用系统 , 特别是
但 是 在 该 系统 中 , 键 问题 就 是 通 信 , 也 成 为 成如 图 1 示 : 关 这 所
用户一直非 常关心 的实 际问题 。
4 4
C U是 P C的核心部分 , P L 是系统的运算 、
《 云南煤 炭} 00年第 3期 21
图 i P C的结构 组 成 L 控 制 中心 。一 般 由控 制 电路 、 算 器 、 运 寄存 器 组 功能选用满足要求的组件, 并将所有组件组装在一
接口 模块接收所需被控设备 的各种信息 , 又将处 及对用户程序做编译处理等。系统程序体现 P C L 理结果输送给外部被控设备 , 驱动各种执行机构 的设计思想 , 直接关系到 P C的功能 , L 一般都 由 实现对被控设备的控制 ; 电源部件将交流电源转 厂家在出厂前将其 固化在系统存储器中。可编程 换成供 P C的中央处理器 、 L 存储器等电子电路工 序控制器的系统程序采用 了模块化 结构设计 , 将 作所需要 的直流电源 , P C能正常工作。 使 L 可编程序控 制器的系统功 能划 分为许多独立 的
利 用 O C技 术 完 成组 态软 件 与 P C运行 系统的 储器 , P L 用于其 内部存储程序 , 执行逻辑运算 , 顺序 通信 。 实现 了 P C与上位机 实时通信 的通信过程 。 控制 , L 定时 , 计数与算术操作等面向用户的指令 ,
关键词 :L 组 态软件 C N总线 O C PC A P
可 编程 序 控 制 器 的 软 件 由系 统 程 序 和 用 户
车载系统CAN通讯实现及上位监控系统设计
车载系统CAN通讯实现及上位监控系统设计随着汽车科技的不断进步,车载系统的功能也变得越来越复杂。
为了实现各个部件之间的通讯和协作,控制区域网络(Controller Area Network,CAN)成为了车辆通讯的主要标准。
本文将介绍车载系统CAN通讯的实现以及上位监控系统的设计。
首先,我们需要了解CAN通讯的基本原理。
CAN通讯是一种串行通信协议,它采用差分信号进行通讯,能够在高噪声环境下保持良好的通讯质量。
CAN通讯使用了一种分布式的通讯方式,每个节点都可以发送和接收数据,节点之间通过标识符来识别不同的数据帧。
CAN通讯的速率可以根据需要进行调整,一般在10kbps到1Mbps之间。
在车载系统中,CAN通讯可以实现各个部件之间的信息交换。
例如,发动机控制单元(Engine Control Unit,ECU)可以通过CAN总线向仪表盘发送发动机转速、油耗等信息,仪表盘则可以根据这些信息显示相应的指示灯或数值。
此外,CAN通讯还可以用于传输车身电子控制单元(Body Electronic Control Unit,BECU)和底盘电子控制单元(Chassis Electronic Control Unit,CECU)之间的数据,实现车辆的稳定性控制和安全性监测。
除了实现车载系统内部的通讯,CAN通讯还可以与上位监控系统相结合,实现对车辆状态的监控和远程控制。
上位监控系统可以通过与车载系统连接的CAN总线获取车辆各个部件的数据,并进行实时显示和分析。
例如,上位监控系统可以监测车辆的速度、油耗、温度等参数,并及时向驾驶员发出警报或建议。
此外,上位监控系统还可以通过CAN通讯向车载系统发送指令,实现对车辆的远程诊断和控制。
在设计上位监控系统时,我们需要考虑以下几个方面。
首先,要确定需要监控的车辆参数和功能,并根据这些需求设计相应的数据采集和处理模块。
其次,要选择合适的通讯接口和协议,确保与车载系统的兼容性。
车身CAN总线系统及上位机检测软件的开发的开题报告
车身CAN总线系统及上位机检测软件的开发的开题报告一、选题背景随着汽车发展的不断深入,现代汽车的电控技术日益复杂,而总线技术是现代汽车电控系统中不可或缺的一环。
车身CAN总线系统是目前主流的汽车总线系统,它能够实现车身各个部件的信息交换并确保信息的准确性,因此对于汽车的安全性和舒适性具有重要的影响。
同时,上位机检测软件也是现代汽车维修的重要工具之一,可以通过该软件快速准确地诊断汽车故障,提高汽车维修效率和精度。
在这样的背景下,本文的选题即是基于车身CAN总线系统和上位机检测软件展开研究和开发,旨在为汽车的安全性、舒适性和维修效率提供有效的技术保障。
二、研究内容和研究目标本文的主要研究内容包括车身CAN总线系统和上位机检测软件的开发。
具体内容如下:1. 车身CAN总线系统的开发(1) CAN总线硬件的选型和设计,包括CAN控制器、CAN收发器、电源管理芯片等;(2) CAN总线软件的开发,包括CAN通信协议的设计和实现、CAN 帧解析与转发等;(3) 车身各部件(如发动机、变速器、空调、车灯等)与CAN总线系统的连接和数据传输。
2. 上位机检测软件的开发(1) 上位机检测软件的界面设计和用户交互设计;(2) 汽车数据的采集和处理,包括CAN总线数据采集与解析等;(3) 汽车故障的自动诊断,包括故障码诊断、参数检测等;(4) 数据报表的生成和导出,方便维修技师查看和分析。
本文的研究目标是基于车身CAN总线系统和上位机检测软件实现快速准确的汽车诊断和维修,提高汽车的安全性、舒适性和维修效率。
三、研究方法和思路本文的研究方法和思路主要包括以下几个方面:1. 规划研究内容和任务,制定开发计划和时间节点。
2. 对车身CAN总线系统和上位机检测软件进行系统设计和模块化划分,明确各模块之间的接口和数据交互方式。
3. 选用合适的开发工具和平台进行开发,如Keil、LabVIEW等。
4. 在开发过程中注意模块之间的交互测试和故障排除,保证软硬件系统的兼容性和稳定性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
. .. .目次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(转换技术)紧密结合的产物。
它在适应围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。
典型的分散式控制系统有现场设备、接口与计算设备以及通信设备组成,现场总线(Field bus)就是在这种背景下产生的[2]。
1.2研究目的和意义从19世纪发明汽车以来,人们就一直在乘坐的舒适性、安全性和操控性方面不停地对其进行改革和创新,车上的电子设备也越来越多。
这些电子设备大多是需要协同工作的,这就要求各部件之间能互相通信[1]。
为了解决汽车通信问题,CAN—bus应运而生,凭借可靠、实时、经济和灵活的特点,CAN总线很快在其他行业得到广泛应用,特别是在工业控制领域更是如鱼得水。
现在CAN—bus总线已经成为全球围最重要的现场总线之一,甚至引领着现场总线的发展。
工业控制系统涉及众多软、硬件模块,给程序的设计和调试带来一定难度。
尤其作为上、下位机间联系纽带的CAN总线通信部分,一旦在整个系统运行期间发生问题,若没有良好的人机界面和测试手段,将很难及时准确地找到并排除故障。
同样,在控制系统的研制过程中,为了尽可能地减少故障和缩小故障围,也应设计相应的测试软件来具体负责CAN总线通信及接口部分的调试、运行任务。
故此,本课题就如何利用VC设计CAN总线测试软件进行介绍。
1.3国外发展现状自从Bosch与Intel公司于1986年正式发布CAN—bus通信方式,宝马(BMW)公司很快于1989年推出第一款使用CAN—bus通信的汽车,从此 CAN—bus开始了其辉煌的历程:(1)1990年,奔驰公司发布了第一辆使用CAN—bus的轿车,现在几乎每一辆新生产的汽车均装配有CAN—bus网络;(2)1993年,CAN—bus总线被制定成为国际标准ISO11898(高速应用)和ISO11519(低速应用);(3)1994年,欧洲成立了CiA厂商协会,美洲成立了ODVA厂商协会,专门支持CAN—bus总线的两大应用层协议——CANopen协议与DeviceNet协议[3]。
在CiA的努力推广下,CAN技术在汽车电子控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面均得到了广泛的应用。
现已有400多家公司加入了CiA,CiA已成为全球应用CAN技术的权威。
国在CAN总线方面的研究和应用于国外相比还存在明显的差距,体现在两个方面:(1)国在自主研究和开发汽车电子CAN网络方面尚处于试验和起步阶段,国绝大部分的汽车还没有采用汽车总线设计;(2)国汽车合资企业不少已采用CAN总线技术,但核心技术掌握在外商手中。
为顺应世界汽车工业发展的趋势,我国也相应加强了对CAN总线的研究,并开发具有自主知识产权的CAN总线产品。
CAN技术已应用于家用电器和智能楼宇以及小区建设中。
随着无线技术的完善和将无线技术应用到CAN总线系统中研究的不断深入,可以乐观地预计,未来CAN总线技术的应用将无处不在,虚拟的CAN总线即将诞生[5]。
1.4论文结构安排本文第一章介绍了CAN总线的研究背景和国外发展现状,并介绍本课题研究的目的和意义。
第二章简单介绍了CAN总线通信规和SJA1000控制器。
第三章简单介绍了开发环境和CAN接口卡。
第四章详细介绍了软件的设计过程,包括驱动安装、接口卡函数库说明、界面设计、功能分析与设计。
第五章介绍了软件的测试及程序的发布。
2CAN总线协议分析2.1CAN-bus 规V2.0 版本CAN 规技术规由两部分组成:• A 部分:CAN 的报文格式说明(按CAN1.2 规定义)。
• B 部分:标准格式和扩展格式的说明。
2.1.1CAN的分层结构在CAN V2.0A里,CAN被细分为三个层次:对象层、传输层、物理层。
而在PartB中,CAN被细分为两个层次:数据链路层(逻辑链路控制子层LLC、媒体访问控制子层MAC)、物理层。
2.1.2报文传输(1)帧类型报文传输由5种类型的帧所表示和控制,它们分别是数据帧、远程帧、错误帧、过载帧和帧间隔,其用途如表2.1所列。
表2.1 帧的类型及用途1)数据帧数据帧由7 个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC 场、应答场、帧结尾。
数据帧各段的功能如表2.2所列。
表2.2 数据帧各段的功能2)远程帧远程帧由6 个不同的位场组成:帧起始、仲裁场、控制场、CRC 场、应答场、帧结尾。
3)错误帧错误帧由两个不同的场组成。
第一个场用作为不同站提供的错误标志的叠加。
第二个场是错误界定符。
错误标志有两种形式,主动错误标志和被动错误标志。
错误界定符包括8 个“隐性”的位。
4)过载帧过载帧包括两个位场:过载标志和过载界定符。
5)帧间空间数据帧(或远程帧)与其前面帧的隔离是通过帧间空间实现的,无论其前面的帧为何类型(数据帧、远程帧、错误帧、过载帧)。
所不同的是,过载帧与错误帧之前没有帧间空间,多个过载帧之间也不是由帧间空间隔离的。
(2)发送器/接收器的定义发送器:产生报文的单元被称之为报文的“发送器”。
此单元保持作为报文发送器直到总线出现空闲或此单元失去仲裁为止。
接收器:如果有一单元不作为报文的发送器并且总线也不空闲,则这一单元就被称之为报文的“接收器”。
2.1.3报文检验校验报文是否有效的时间点,对于发送器与接收器是各不相同的。
对于发送器:如果直到帧的末尾位均没有错误,则此报文对于发送器有效。
如果报文破损,则报文会根据优先权自动重发。
为了能够和其他信息竞争总线,重新传输必须在总线空闲时启动。
对于接收器:如果直到一最后的位(除了帧末尾位)均没有错误,则报文对于接收器有效。
2.1.4编码位流编码:帧的部分,诸如帧起始、仲裁场、控制场、数据场以及CRC序列,均通过位填充的方法编码。
数据帧或远程帧(CRC界定符、应答场和帧末尾)的剩余位场形式相同,不填充。
错误帧和过载帧的形式也相同,但并不通过位填充的方法进行编码。
报文里的位流采用不归零编码(NRZ),这就是说,在整个位时间里,位电平要么为“显性”,要么为“隐性”。
2.1.5错误处理错误检测:有5种不同的错误类型(这5种错误不会相互排斥):位错误、填充错误、CRC错误、形式错误、应答错误错误标志:检测到错误条件的站通过发送错误标志指示错误。
2.1.6故障界定至于故障界定,单元的状态可能为以下三种之一:错误主动:可以正常地参与总线通讯并在错误被检测到时发出主动错误标志。
错误被动:不允许发送主动错误标志。
总线关闭:不允许在总线上有任何的影响(比如,关闭输出驱动器)。
2.1.7位定时要求标称位速率:标称位速率为一理想的发送器在没有重新同步的情况下每秒发送的位数量。
标称位时间:标称位时间=1/标称位速率可以把标称位时间划分成几个不重叠的时间片段,它们是:同步段、传播时间段、相位缓冲段1、相位缓冲段2。
2.1.8报文滤波在CAN2.0B中,还增加了有关报文滤波的定义。
报文滤波取决于整个识别符。
允许在报文滤波中将任何的识别符位设置为“不考虑”的可选屏蔽寄存器,可以选择多组的识别符,使之被映射到隶属的接收缓冲器里。
如果使用屏蔽寄存器,它的每一个位必须是可编程的,即,他们能够被允许或禁止报文滤波。
屏蔽寄存器的长度可以包含整个识别符,也可以包含部分的识别符。
2.1.9振荡器容差由于给定的最大的振荡器,其容差为1.58%,因此凭经验可将瓷谐振器使用在传输率高达125kbit/s的应用罩。
为了满足CAN协议的整个总线速度围,需要使用晶振。
具有最高振荡准确度要求的芯片,决定了其他节点的振荡准确度。
2.2CAN控制器SJA1000下位机的CAN总线网络接口使用Philips公司的SJA1000芯片,SJA1000是一个独立的CAN控制器,具有一系列先进的功能,适合于多种应用,特别在系统优化、诊断和维护方面非常重要。
SJA1000具有完成CAN总线通信协议所要求的全部特性,它与独立CAN总线控制的PCA82C200完全兼容,并有支持CAN2.0B协议、扩展接收缓冲器、增强错误处理能力和增强验收滤波功能等新增功能。
SJA1000可以直接进行CAN总线互联,而PC机作为上位机,是通过USB电缆连接到CAN接口卡上的,这里我们使用的是普创电子的CANUSB—Ⅱ工业级双路智能接口卡。
该接口卡中的CAN总线数据收发也是由SJA1000CAN控制器和82C250CAN收发器完成的,主机通过USB电缆来访问CAN控制器,从而实现数据通信。
2.3本章小结本章主要介绍了CAN总线通信系统上位机通信软件的设计所涉及的基本知识,包括CAN—bus规和CAN控制器SJA1000,有了这些知识,才能保证软件设计得以顺利开展。
3开发环境介绍3.1开发环境CAN总线通信系统上位机通信软件的设计应具有直观的窗口外观,丰富、人性化的友好界面,便于操作和维护。