通过该课题,在加深我们对于LIN总线这一串行通讯网络理解的同时,也能进一步加强我们对于C#的理解和掌握,因此对于该课题的研究是十分有意义的。
3.4 错误检测
以下错误必须在每一节点处进行检测和计数,一旦出现错误,该命令就要被丢弃,并记录这一错误事件。
位错误——正在发送的节点应该对希望发送的数据与总线上实际出现的数据进行比较,控制器必须等待足够时间以确保总线对发出的数据做出反应,然后才可测试这一数据。假定总线响应信号的最小边沿变化速率为1V/μs,最大总线电压为18V,那么发送器应等待18μs后才可进行测试。
校验和错误——每条报文的数据内容都受到校验和字节的保护,该字节是数据字节相加后取256模的余数再取反的结果。
奇偶校验——命令字节使用2个奇偶位来保护其它6个数位,这两个数位在接收后要重新计算,再与接收结果进行比较。
在单片机和LIN驱动程序初始化后,通过主节点电路板上的开关,调节LIN是否被允许工作。如果工作,主函数会将帧头发送到从节点。如果从节点有反应,反馈回来的数据会读取,同时检查该节点是否为新节点。如果是,则显示新节点。对于从节点,在配置完寄存器后,进行初始化,初始化完成后进入主程序循环,如果LIN总线5S没有活动,则进入睡眠状态,如果有,则查看开关的状态如果有,则查看开关类型判断是进入节点的配置模式,还是进入正常模式。LIN协议没有定义直接错误报告机制,然而由于每个从节点都应自行追踪各自的错误,因此主节点可利用正常的报文协议来请求获得错误状态。
3.5 设计结论
系统设计的最后,对软件进行了调试,本文设计了LIN总线的两种拓扑结构,并对LIN节点的硬件和软件分别进行了设计。考虑到LIN总线的产生本身就是为了简化线束、合理利用网络资源、节约成本的目的,对于普通的汽车应用来说,CAN模块的成本比较高,并且LIN协议是面向车辆低端分布式应用的一类串行通信协议。LIN设计目标作为CAN的下层网络,同CAN相结合可构成车辆应用中的分层网络结构。因此我在此基础上制作了一个UDP通讯软件,以此来进行LIN总线网络的仿真。尽管UDP的可靠性并不是很强,但是在有些情况下UDP协议可能会变得非常有用。因为UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用,即主节点来完成,极大降低了执行时间,使速度得到了保证。UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
就LIN总线本身而言,随着车上总线节点的增加以及电子技术向中低档汽车延伸的发展趋势,其相对较高的实现成本就成为一种障碍。并且汽车的一些智能控制功能不断转移到最小节点中,对于能满足这样要求的小而可靠的微处理器的需求不断增加。LIN网络方案使大量节点之间的互连变得简单、经济高效,因此是理想的解决方案。因此采用LIN总线将会是目前汽车车身控制的方向。
4 功能实现与调试
4.1 仿真软件界面与功能简介
此次软件的开发环境我选择用Visual Studio 2008。Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。Visual Studio 2008 包括各种增强功能,例如可视化设置器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP NET应用程序服务和 Microsoft 平台。为了帮助开发人员迅速创建先进的软件,Visual Studio 2008 提供了改进的语言和数据功能,例如语言集成的查询 (LINQ),各个编程人员可以利用这些功能更轻松地构建解决方案以分析和处理信息。Visual Studio 2008 还使开发人员能够从同一开发环境内创建面向多个 .NET Framework 版本的应用程序。开发人员能够构建面向 .NET Framework 2.0、3.0 或 3.5 的应用程序,意他们可以在同一环境中支持各种各样的项目。 LIN总线车身系统逻辑控制的仿真设计(10):http://www.751com.cn/jisuanji/lunwen_2446.html