0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用ARM EP9315处理器实现P0104总线的应用方案

电子设计 来源:微计算机信息 作者:高伟,何方,李锁 2021-03-22 09:22 次阅读

前言

目前的ARM处理器已经适合应用于数控系统。ARM处理器的成本低而且种类多。主频能够满足数控领域需求而且功耗比较低,无需使用风扇,提高了系统的可靠性。带有MMU的ARM处理器支持数控软件所需要的Linux操作系统,能够充分利用现有的数控软件资源。随着ARM处理器和FPGA的快速发展.给数控系统的设计提供了新的解决方案。ARM处理器用作系统的核心,可编程FPGA器件作为运动控制器。同时FPGA器件提供数控系统I/O等其它辅助电路。

随着PC/104成为工业控制领域的标准,已经被IEEE协会定义为IEEE-P996.1,PC/104总线提供的信号跟ISA总线一样,但是前者的机械规格不仅易于扩充而且更加坚同,适合应用于数控系统。但是这种总线结构是在Intel的x86体系结构上发展而来,目前x86对PC/104的支持比较好,而ARM对PC/104的支持还不完全统一,主要由于ARM和x86在体系结构、总线时序、电气特性以及指令集等方面的差异。而且不同的数控系统所需要的总线信号也不完全一样。本文将提出一种基于ARM处理器的数控系统上支持P0104总线的方案。

1 系统总体设计

数控系统中的ARM处理器采用Cirrus Logic的EP9315处理器,用EP9315的一个片选(nGCS3_PHBASE 0X30000000)作为PC104的地址范围,用地址ADDR24来控制MEMORY和10的方式的读写;用另一个片选(nGCS1_PHBASE 0X10000000)来查询PC104的中断号,当PC104有中断的时候,用一个中断通知CPU,然后CPU通过nGCS1这个地址来读中断号,判断出11个PCIl04中断源中来自哪个中断。由于EP9315和CPLD在制作工艺、电气性能上与PC/104总线有比较大的差别.因此需要使用74LVTH16245作为3.3-5V电气转换buffer用来调整电平模式。CPLD是基于乘积项的可编程逻辑器件.CPLD内部采用固定长度线连接各个逻辑块,因此具有较大的时间可预测性,引脚到引脚的延迟几乎是固定的,与逻辑设计无关,因此适合作为PC/104总线控制器。这里使用Altera的EPM7032用作PC/104总线控制器,用来完成EP9315读写时序向PC/104总线读写时序的转换。EP9315的数据总线和地址总线连到电平转换buffer,输出到PC/104总线上。因此PC/104总线设计的核心是保证EPM7032有正确的读写时序。原理图如图1所示:

采用ARM EP9315处理器实现P0104总线的应用方案

图1 原理框图

2 PC/104总线控制器的实现

PC/104 总线介绍

PC/104采用模块化设计方法.通过自堆叠总线,省去了对底板或板卡插槽的要求。通过将多数信号的总线驱动电流减小至4mA.将元件数量和功耗降到最低。模块的104个信号线分布在两个总线连接器上,P1连接器有64个信号引脚,P2连接器有40个信号引脚。与ISA总线相比,PC/104总线将板卡的长宽比降至3.775英寸比3.550英寸(即96mm比90mm),克服了ISA总线机械规格的缺点。PC/104总线与PC/AT总线兼容,也定义了两种工作模式一8位和16位数据模式。对于8位数据模式,总线信号由板上的64引脚双排插座P1/J1提供,对于16位模式,增加了40引脚双排插座P2/J2。

ARM EP9315处理器介绍

EP9315处理器是Cirrus Logic推出的一款基于ARM920T内核的RISC处理器,主要面向工业计算机和手持设备等等。ARM920T是Harvard体系结构处理器,由ARM920TDMI、存储管理单元(MMU)和高速缓存3部分组成。有独立的16位指令cache和数据cache。ARM920T有5级流水线。EP9315工作频率为200M Hz,集成了2D图形加速器和协处理器,以及丰富的外设接口例如IDE控制器和PCMCLA控制器等,即使不使用额外的DSP芯片也能够支持相当多的外设。EP9315支持Linux。Microsofi Windows CE等操作系统。

PC/104总线控制器的设计

控制器的CPLD设计采用Altera公司的EPM7032.属于MAX7000可编程器件系列。MAX7000系列是高密度、高性能的CPLD,采用了Altera的第二代MAX架构,采用浮栅EEPROM设计。结构如图2所示:

图2 EPM7032的结构

结构中包括逻辑阵列模块(LAB)组成的阵列、可编程互连阵列口(PLA)和可编程I/O模块阵列。每个LAB包括36个输入端、16个输出端和16个宏单元,每个宏单元包括处理组合和时序运算的组合逻辑和触发器。PIA作为全局总线提供了多重LAB、专用输入端和I/O引脚之间的连接。PIA为逻辑单元的输出和LAB的输入提供了包括预计定时的完整连接。器件可以工作在3.3v。pin—to—pin的延迟tPD=6ms,工作频率可达151.5MHz,能够与EP9315的AMBA总线时钟频率相匹配。EPM7032支持多种设计输入,除原理图外还可以通过VHDL Veriiog HDL和Altera Hardware Description Language (AHDL)。Verilog HDL语言是一种硬件描述语言,能形式化地抽象描述电路的结构和行为,支持逻辑设计中层次与领域的描述,具有电路仿真与验证机制以保证设计的正确性,用于算法级、门级和开关级的建模。开发环境使用Altera的MAX+Plus。

总线控制器的实现与仿真

在PC/104总线内部,用一个信号INT1查询相关的中断信号,使用片选信号CS3和地址信号LADDR24和读写信号WR、RD选择MEM或者10的读写方式。相关代码如下:

assign INT1=(IRQ[3] || IRQ[4] || RQ[5] || IRQ[6] || IRQ[7] || IRQ[9] || IRQ[10] || IRQ[11] || IRQ[12] || IRQ[14] || IRQ[15]);

assign MEMW=(CS3 || WR || LADDR24);

assign MEMR=(CS3 || RD || LADDR24);

assign IOW=(CS3 || WR) || (~LADDR24);

assign IOR=(CS3 || RD) || (~LADDR24);

使用MAX+Plus部分仿真结果如图3所示。从波形上可以看出INTI能够检测出中断产生,能够检测到MEM和I/O读写请求。总线控制器把这些信号输入到ARM处理器,完成对PC/109总线读写的控制。

图3 读写时序仿真波形

3 Linux下的PC/104总线驱动程序的设计

在Linux中,由于有设备文件,所以才能使得用户非常方便的访问外部设备,Linux系统为外部设备提供一种标准接口,将外部设备视为一种特殊文件,可以像访问文件一样访问一个外部设备。Linux通常将设备分为i种基本类型:字符设备、块设备和网络设备。在基于ARM处理器的数控系统中把PC/104总线看作块设备。下面是PC/104代码的说明:

nGCS1_VBASE=ioremap((nGCS1_PHBASE).2);

nGCS3_VBASE=ioremap((nGCS3_PHBASE+BaseAddr+LADDR24),256);

config=inl(SMCBCR1);

config &=0xcfffffff; //set nGCSI 8-BIT

outl(config,SMCBCR1);

config=inl(SMCBCR1);

config=inl(SMCBCR3);

config &=0xcfffffff; //set nGCS3 8-BIT

eonfig 1=0x0000fbe0;

outl(config,SMCBCR3);

config=inI(SMCBCR3);

两部分比较主要一部分是初始化SMCBCR1和SMCBCR3。另一部分是:一个是PC/104的基地址,另一个是读PC/104中断的基地址。这两个要在初始化时就要给定:

nGCS1_VBASE=ioremap((nGCS_PHBASE),2);

nGCS3_VBASE=ioremap((nGCS3_PHBASE+BaseAddr+LADDR24),256);

其中uGCS1_VBASE为读中数的nGCS3_VBASE为PC/104MEM的基地址。用操作系统担供的函数outl、inl可操作寄存器

4 结语

本文创新点:提出一种基于ARM EP9315处理器的数控系统上支持PC/104总线的方案.主要描述了ARM数控系统中的PC/104总线控制器的设计与实现,使用CPLD和Verilog HDL语言。实现了EP9315对PC/104总线读写信号的控制和中断处理。完成了Linux下的PC/104总线控制器的驱动程序.提供了基于ARM处理器的数控系统的PC/104总线解决方法.弥补了ARM处理器对于PC/104总线的支持不足缺点,使得ARM处理器能够更广泛的应用于数控领域。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19130

    浏览量

    228899
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9034

    浏览量

    366586
  • 总线
    +关注

    关注

    10

    文章

    2863

    浏览量

    87934
收藏 人收藏

    评论

    相关推荐

    ARM Cortex-A9处理器

    类别:嵌入式系统处理器知识产权许可商ARMHoldingsplc已经成功开发出双内核Cortex-A9处理器设计(被称为Osprey)的两个实现。Cortex-A9处理器能与其他Cor
    发表于 09-06 09:27

    怎么实现基于ARM7处理器LPC2119的USB-CAN转换设计?

    本文讲述了一种基于ARM7处理器实现USB接口与CAN总线的实例,通过其可以在PC实现对CAN总线
    发表于 05-21 06:58

    基于EP9315实现了一个基本的NAS系统

    用户设置,是否可写操作等。本项目基于EP9315实现了一个基本的NAS系统,加以完善就可以作为中小型用户的存储系统方案。通过本项目,便于开发者对ARM9微
    发表于 10-27 06:30

    基于arm Cortex-M3处理器与深度学习加速的实时人脸口罩检测SoC设计方案

    1、基于arm Cortex-M3处理器与深度学习加速的实时人脸口罩检测 SoC本项目采用arm公司提供的DesignStartEval版
    发表于 08-26 15:23

    ARM Cortex-M4处理器技术参考手册

    Cortex-M4处理器包含处理器核心、嵌套矢量中断控制(NVIC)、高性能总线接口、低成本调试解决方案和可选的浮点单元(FPU)。 Co
    发表于 08-08 07:18

    Arm Cortex-R82处理器技术参考手册

    Cortex®-R82处理器是一款中等性能的多核有序超标量处理器,适用于实时嵌入式应用。 Cortex®-R82处理器采用ARM®V8-R
    发表于 08-17 07:45

    基于ARM的PC/104处理器模块设计

    提出了一种低成本的PC/104处理器模块的设计。该模块硬件上以ARM处理器为核心实现了PC/104处理模块的基本结构、
    发表于 08-25 10:36 20次下载

    基于ARM数控系统的PC104总线设计

    根据基于ARM 处理器的数控系统的需要,通过对EP9315 开发板的研究与实验,提出一种在ARM 数控系统上实现PC/104
    发表于 01-07 14:03 30次下载

    提高μCOS-II在EP9315上的执行效率

     针对如何提高μC/OS-II在EP9315上的执行效率问题,结合μC/OS-II和EP9315体系,分析了影响系统这一性能的主要因素,并提出了解决方案。利用Scatter-loading机制,重新定位可执行映像
    发表于 12-16 15:33 25次下载

    ARM9处理器ARM7处理器比较

    摘要:ARM处理器是世界上最流行的嵌入式处理器,广泛应用于个人通信等嵌入式领域。ARM7处理器虽然功能强大,但是目前已经开始退出主流应用
    发表于 03-11 12:21 1342次阅读
    <b class='flag-5'>ARM</b>9<b class='flag-5'>处理器</b>与<b class='flag-5'>ARM</b>7<b class='flag-5'>处理器</b>比较

    EP9315 ARM评估板开发板

    关键词:9315开发板 ARM开发板 EP9315ARM芯片规格:嵌入式工业计算机结构,采用 Cirrus LOGIC EP9315
    发表于 12-16 15:25 937次阅读

    采用EP9315芯片的的网络存储NAS系统设计

    附网络存储NAS是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以便对不同主机和应用服务进行访问的技术[1]。本文提出一种以ARM9微处理器EP9315和嵌入式Linux操
    发表于 03-29 15:15 1203次阅读
    <b class='flag-5'>采用</b><b class='flag-5'>EP9315</b>芯片的的网络存储NAS系统设计

    EP9315 ARM开发板资料

    本内容详细介绍了EP9315 ARM开发板的资料
    发表于 04-28 17:23 97次下载
    <b class='flag-5'>EP9315</b> <b class='flag-5'>ARM</b>开发板资料

    基于EP9315处理器和Linux系统实现PC/104总线控制的设计

    要的Linux操作系统,能够充分利用现有的数控软件资源。随着ARM处理器和FPGA的快速发展.给数控系统的设计提供了新的解决方案ARM处理器
    发表于 10-26 10:19 1367次阅读
    基于<b class='flag-5'>EP9315</b><b class='flag-5'>处理器</b>和Linux系统<b class='flag-5'>实现</b>PC/104<b class='flag-5'>总线</b>控制<b class='flag-5'>器</b>的设计

    基于EP9315的嵌入式实验系统

    电子发烧友网站提供《基于EP9315的嵌入式实验系统.pdf》资料免费下载
    发表于 10-08 10:54 0次下载
    基于<b class='flag-5'>EP9315</b>的嵌入式实验系统