基于ARM的PC/104总线嵌入式工控机-CAN总线设计解析

需积分: 49 21 下载量 55 浏览量 更新于2024-08-07 收藏 5.38MB PDF 举报
"深入理解软件构造系统原理与最佳实践,本文档主要关注基于ARM的PC/104总线嵌入式工控机的设计与实现,特别是CAN总线和CPLD在其中的作用。" 本文档详细探讨了在工业控制领域中,如何利用低功耗且高性能的ARM处理器来构建满足特定需求的嵌入式工控机。ARM系列处理器因其低功耗特性,成为x86架构的替代选择,尤其适用于对功耗有严格要求的场合。在ARM处理器不直接支持PC/104总线的情况下,设计者采用了CPLD(复杂可编程逻辑器件)来实现ARM本地总线与PC/104总线之间的转换。 在PC/104总线设计部分,文档提到了CAN总线的应用。CAN(Controller Area Network)总线是一种广泛应用的串行通信协议,特别适合于实时性和可靠性要求高的工业环境。文中提到的CAN控制器是SJAl000,它与PCA82C200兼容,具备更多的增强功能,如标准帧和扩展帧数据结构,以及接收过滤器和错误管理机制。SJAl000有两种工作模式:Basic CAN模式和PeliCAN模式,后者完全支持CAN2.0B协议。该控制器通过CPLD与PC/104总线连接,其片选信号CS由CPLD根据高位地址译码决定,读写操作由CPLD解析IOW和IOR信号产生。 硬件设计中,作者详细描述了系统各个组成部分,包括最小系统、CAN网络、以太网络和PC/104总线控制器的实现。在PC/104总线控制器部分,深入分析了ARM本地总线时序与PC/104总线时序的差异,并用VHDL语言实现了总线控制器的逻辑设计。 软件方面,文章讲述了如何移植嵌入式Linux操作系统,包括配置、编译和下载运行调试的过程。同时,开发了针对PC/104总线的驱动程序,实现了地址映射和中断绑定。此外,还编写了专门针对PC/104的CAN总线驱动,详细阐述了驱动的初始化、中断处理、数据缓冲区管理和文件操作接口。 最后,作者针对机车工业控制领域的具体需求,开发了一个实际系统,并进行了性能测试。测试结果显示,系统的定点运算能力与x86相当,满足设计要求。该系统通过了严格的高低温和射频干扰测试,并在3个月的装车试运行中表现出良好的稳定性,完全能够满足实际应用的需求。 关键词:嵌入式系统;ARM处理器;PC/104总线;CAN总线;CPLD;Linux操作系统;驱动程序;工业控制。