ARM嵌入式工控机研究:CAN总线驱动开发与初始化

需积分: 49 21 下载量 57 浏览量 更新于2024-08-07 收藏 5.38MB PDF 举报
"深入理解软件构造系统原理与最佳实践,设备初始化,CAN总线驱动,PC/104,CPLD,ARM,湖南大学硕士学位论文,李臻君,电路与系统,黎福海,嵌入式工控机,S3C2410,Linux操作系统,CAN网络,以太网络,总线控制器,驱动编写" 本文主要探讨了基于ARM的PC/104总线嵌入式工控机的研究和实现,涉及多个关键知识点。 首先,CAN总线是一种广泛应用的工业现场总线,以其低成本、高可靠性和实时性受到青睐。在Linux系统中,由于缺乏现成的驱动,需要自行开发。文中提到的CAN控制器SJA1000由PHILIP公司制造,集成物理层和数据链路层,支持报文的优先级控制、错误检测及自动重发功能。驱动编写涉及初始化、设备注册、缓冲区管理以及文件操作接口等环节。 设备初始化阶段,CAN驱动程序需要对控制器进行配置,比如确定PC/104总线上的地址映射。在本系统中,PC/104总线内存映射到虚拟内存0xfa000000,而CAN控制器位于100h地址,因此其虚拟内存地址为0xfa000100。使用`volatile`关键字防止编译器优化控制器内存存取。 文章还提到了在特定工业控制应用中,ARM处理器因低功耗和高性能适合使用。由于ARM不直接支持PC/104总线,设计中利用CPLD(复杂可编程逻辑器件)实现ARM本地总线与PC/104总线的转换。硬件部分详细描述了最小系统、CAN网络、以太网络和PC/104总线控制器的实现,特别是PC/104总线控制器的时序分析和VHDL实现。 在软件层面,嵌入式Linux操作系统被移植到S3C2410处理器上,包含了配置、编译和下载运行调试的步骤。同时,开发了PC/104总线驱动,实现地址映射和中断绑定,以及CAN总线驱动,详细阐述了初始化、中断处理、数据缓冲区管理和文件操作接口的实现过程。 最后,该系统在机车工业控制领域得到应用,经过运算性能测试、高低温测试和射频干扰测试,证明了其满足设计要求,并在3个月的装车试运行中表现出良好的稳定性。 关键词涵盖的领域包括嵌入式系统设计、ARM处理器技术、PC/104总线接口、CAN通信协议以及在实际工业控制环境中的应用。