ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:448.36KB ,
资源ID:5413589      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5413589.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汽车CAN总线监视器windows运用软件研发概要设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汽车CAN总线监视器windows运用软件研发概要设计.docx

1、汽车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

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系统功能模块图3.4 接口设计3.4.1外部接口用户界面采用VB进行编程,用户界面如图3-4:图3-4系统界面截图图3-5中setting里面可以设定要使用的端口号,如果端口未连接设备则会报错,setting里面还可以设定COM速率(本实验由于使用USB所以不用设)和CAN总线的波特率。设定完毕后点击Set Speed &Open打开CAN总线,Close用来关闭CAN总线,Get Version用来获得版本信息,Timestamp ON Timestamp OFF用来控制时间戳的打开和关闭,send是用来方便的发送一个便准测试数据帧,如果想执行其他指令可以再下面的框中输入点击

4、Advanced Send发送(如果发送信息为空则会报错),返回信息输出在Result中,点击Clear可以清空返回内容。详细的执行情况可以参见第四章的测试报告。图3-5系统界面操作截图3.4.2内部接口PC机的USB口连接FT245,正常工作模式下SJA1000通过CAN总线驱动器链接到CAN总线收发端口,自检测模式下ATmega128链接到JTAG ICE。FT245,ATmega128和SJA1000的内部接口如图3-6和图3-7:3.5数据结构设计 3.5.1数据结构与程序的关系 程序中最主要的数据帧数据结构设计如下:struct TX_EFF unsigned long id; un

5、signed long timestamp; unsigned char flags; unsigned char len; unsigned short data8 ; ;其中id用于存放数据帧的ID,包括11位ID的标准数据帧和29位ID的扩展数据帧,故数据类型使用unsigned long(32位),timestamp用于记录接收到数据的时间,时间由时钟中断提供,精确到1毫秒,本程序中记录0-60秒,超过60秒则归0,flags中的8为数据第八位(最高位)用于存放数据类型,0代表标准数据帧,1代表扩展数据帧;第七位用于存放是否是请求数据帧,不是为0,是为1。Len存放数据长度,数据长度为

6、0-8,data数组用于存放数据,每一个数据大小为8位(一个字节),最多存放8个数据。3.6运行设计 3.6.1运行模块的组合及运行控制 主函数循环检测指令标志位是否为1,为1则进入到程序中,首先检测指令的正确性,错误直接返回一个字符CR,正确则进行相应操作。 当有信息从FT245传送来时自动进入INT1中断,接收整条指令(以CR为结尾),本着中断中尽量少进行操作的原则,把指令存放在变量中,然后置指令标志位为1,等待主循环的检测。如果是操作指令则进行相应的操作,如果是发送信息指令则把信息存放在发送队列中,并改变指针位置。 当SJA1000接收到信息时自动进入INT0中断,INT0中判断中断类型

7、,如果是接收中断则接收数据存放在接收循环队列中,并改变指针位置。 TIMER0_COMP中断则是每500微秒自动进行的中断,如果检测到严重错误则会发出警报,如果发现发送队列和接收队列不为空则进行相应的发送和接收操作。 3.6.2运行时间 接收一个数据帧的时间要求在100微秒以内,发送数据帧的时间不做硬性的要求。关于运行时间的分析测试请见第四章。3.6.3Schemal文件 Comment describing your root element 3.7出错处理设计 3.7.1出错输出信息 每条指令返回两个字符,第一个字符代表指令正确与否,第二个字符代表指令是否执行成功,字符CR(回车)代表指令

8、正确和执行成功,07(BELL)代表错误或执行失败(如果指令错误只会返回一个07,不会返回第二个字符)当发生严重错误时(错误的划分见3.7.2),发送信号灯和接收信号灯常亮。3.7.2出错处理对策一般性的错误:指令输入错误,指令输入间隔时间过长,在CAN总线打开的情况下设定了波特率,在CAN总线打开的情况下设定了验收代码寄存器和验收屏蔽寄存器,在CAN总线打开的情况下打开CAN总线。在CAN总线关闭的情况下发送数据,在CAN总线关闭的情况下关闭CAN总线,在队列满的情况下接收了数据,在队列空的情况下发送了数据。在没有设定波特率的情况下打开了CAN总线等。这些错误只在结构体中加以记录,当接收到P

9、C机发送来的返回寄存器状态时指令时返回状态给PC机,使用初始化指令可以清空这些状态。严重的错误:EI(错误报警中断),DOI(数据溢出中断),EPI(错误消极中断),ALI(仲裁丢失中断),BEI(总线错误中断),当上述标志位被置位时,通过时钟中断检测到并停止一切的发送接收工作,发送信号灯和接收信号灯常亮,等待处理。查看错误类型可以通过执行返回寄存器状态指令,清除错误可以使用初始化指令。3.8安全保密设计 由于本课题研究的是嵌入式系统的开发,所以最重要的就是实时性,应该避免所有让系统瘫痪或者死等的情况。(1)在INT0,和INT1中断中都尽量减少了操作,大多运用标志位,然后在别的函数中进行检测

10、。(2)接收队列中的处理,由于写回PC机比较费时间所以单独的设置了一个结构体用于存放一个数据帧,当写回数据时,先把数据写到单独的结构体中(此时指针位置改变可以存放下一条数据)然后对结构体中的数据进行移位等操作,并写回到PC机。(3)设置了时钟中断检测发送和接收队列,这样当同时接收到或者是要发送多个数据时能够一次发送。为了防止CAN总线未打开发送数据死等的情况,在CAN总线未打开时要发送的数据会被丢掉并返回一个错误信号。(4)由于接收命令都需要以CR为结尾,当一条指令不以CR为结尾时便会出现死等的情况。所以程序做了类似于看门狗的设计,每接收到指令中的一个字符时就更新变量中的时间,当两个字符的输入时间大于100毫秒时,便返回错误警报并且丢弃该指令。(由于指令都是成条输入,所以一般不会大于100毫秒)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1