- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汽车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:图3-4 系统界面截图图3-5中setting里面可以设定要使用的端口号,如果端口未连接设备则会报错,setting里面还可以设定COM速率(本实验由于使用USB所以不用设)和CAN总线的波特率。设定完毕后点击Set Speed Open打开CAN总线,Close用来关闭CAN总线,Get Version用来获得版本信息,Timestamp ON Timestamp OFF用来控制时间戳的打开和关闭,send是用来方便的发送一个便准测试数据帧,如果想执行其他指令可以再下面的框中输入点击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; unsigned long timestamp; unsigned char flags; unsigned char len; unsigned short data[8] ; } ;其中id用于存放数据帧的ID,包括11位ID的标准数据帧和29位ID的扩展数据帧,故数据类型使用unsigned long(32位),timestamp用于记录接收到数据的时间,时间由时钟中断提供,精确到1毫秒,本程序中记录0-60秒,超过60秒则归0,flags中的8为数据第八位(最高位)用于存放数据类型,0代表标准数据帧,1代表扩展数据帧;第七位用于存放是否是请求数据帧,不是为0,是为1。Len存放数据长度,数据长度为0-8,data数组用于存放数据,每一个数据大小为8位(一个字节),最多存放8个数据。3.6 运行设计3.6.1 运行模块的组合及运行控制主函数循环检测指令标志位是否为1,为1则进入到程序中,首先检测指令的正确性,错误直接返回一个字符CR,正确则进行相应操作。当有信息从FT245传送来时自动进入INT1中断,接收整条指令(以CR为结尾),本着中断中尽量少进行操作的原则,把指令存放在变量中,然后置指令标志位为1,等待主循环的检测。如果是操作指令则进行相应的操作,如果是发送信息指令则把信息存放在发送队列中,并改变指针位置。当SJA1000接收到信息时自动进入INT0中断,INT0中判断中断类型,如果是接收中断则接收数据存放在接收循环队列中,并改变指针位置。TIMER0_COMP中断则是每500微秒自动进行的中断,如果检测到严重错误则会发出警报,如果发现发送队列和接收队列不为空则进行相应的发送和接收操作。3.6.2运行时间接收一个数据帧的时间要求在100微秒以内,发送数据帧的时间不做硬性的要求。关于运行时间的分析测试请见第四章。3.6.3Schemal文件?xml version=1.0 encoding=
文档评论(0)