基于ARM嵌入式系统的PC/104总线设计

发布者:堕落的猫最新更新时间:2011-10-11 关键字:ARM嵌入式系统  PC/104总线 手机看文章 扫描二维码
随时随地手机看文章
    当前已经进入嵌入式系统全面应用时代,基于ARM处理器和嵌入式Linux的嵌入式系统以其设计灵活、软硬件可裁剪、性能优越、成本低等特点和优势,倍受设计者和使用者青睐。

    其在低功耗、低成本应用领域确立了其市场领导地位;同时随着x86架构的不断成熟和x86处理器的应用范围越来越广,人们逐步开始认识到其本身架构的限制,在工业控制领域嵌入式ARM处理器将有望取代传统的X86处理器。
  

    PCI04总线是一种近年来在国际上广泛流行的专门为嵌入式系统而定义的工业控制总线,被IEEE协会定义为IEEE-P996,该系列产品已广泛应用于通信设备、车辆导航、工程控制等各种领域。由于PC或PC/AT的主板和扩展卡的尺寸及功耗标准都太大,。ISA总线不能满足嵌入式系统的发展的需要。PC/104作为从。ISA总线转变而来的接口总线,主要是为了适应嵌入式系统发展的需要,但是这种早期的总线结构是建立在Intel的x86架构之上的,在ARM体系结构下,还没有一个统一的标准可以提供对PC/104总线的支持,因为ARM在体系架构、总线时序、电气性能等方面和x86都有很大的区别。本文将提出一种在ARM处理器上支持PC/104总线的解决方案。

    l 系统总体设计

    系统的工作原理:PC/104总线上的1/O和Memory各16 MB空间用nGCS2和nGCS3选通,分别映射到的S3C24lO存储空间Bank2和Bank3的ROM/SRAM上。由于S3C24:10和CPLD在电平模式、制造工艺上都和PC/104总线标准有差异,故选用器件74LVHl62245做3.3~5 V电平转换器Buffer的方式来调整电气特性,进行TTL电平和LVTTL电平的转换,并增强驱动能力。PC/104总线上的8个中断请求信号IRQ[3:11]经bairer直接连接到S3C:2410的EINT[O:7];将S3C2410地址线SAddr[1:23]通过Buffer直接连接到Pc/104总线的Addr[1:19]和LAddr[17:23],.Addr0由控制器给出,当总线为8位数据传输时有效。由于复杂可编程器件CPLD的集成度高,与专用集成电路相比,具有设计灵活、开发周期短、设计制造成本低、大大节省了硬件资源优点,可选用他来做PC/104总线的控制器,主要是完成S3C2410读写时序向PC/104总线读写时序的转换,对输入控制信号译码,提供PC/104总线和S3C2410处理器的控制信号,同时产生PC/104所需要的时钟信号。S3C2410数据总线D[O:15]经CPLD输出到Buffer(Buffer上的数据传输方向由控制信号Data dir控制),连接到PC/104的数据总线上。因此总线控制设计的关键是保证控制器CPLD的时序的正确。其原理框图如图1所示。

  

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

    2.1 PC/104总线简介

    PC/104模块具有独特的堆叠式总线扩展方式、体积小、功耗低、可靠性高等特点,由J1/P1,64针单列双排插针或插孔,和J2/P2,40针单列双排插针或插孔组成,总共104根总线信号,PCI04因此得名;标准模块的机械尺寸是3.6X3.8 in,即96X90 lnln。当总线工作在16位的数据模式下,儿/P1和J2/P2引脚的信号都应有效,在8位数据模式下,只有J1/P1引脚信号有效,J2/P2上的信号无效。104个引脚的组成:20根地址线;7根锁存地址线;16根数据线;11个中断请求;32根控制线;14跟地和电源线;2个key;1个8 MHz的BCLK和1个14 MHz的OSC;总线的工作电压为5 V。PC/104总线的I/O读写时序如图2所示。

  


    2.2 ARM$3C2410处理器简介

    S3C2410是韩国三星电子公司的一款基入ARM920T内核的16/32位RISC嵌入式处理器,主要面向手持设备及高性价比、低功耗的应用,最高工作频率为203 MI-Iz。ARM920T核由ARM920TDMI、存储管理单元(MMU)和高速缓存3部分组成。其中MMU可以管理虚拟内存,高速缓存由独立的16 kB地址和16 kB数据高速Cache组成,他支持嵌入式Linux,Windows ce等嵌入式操作系统。S3C2410将系统的存储空间分成8组(Bank),每组的大小为128 M,共1 G。Bank0~Bank5的开始地址固定,用于ROM/SREM。Bank7的开始地址是Bank6的结束地址,灵活可变,其主要用于ROM/SRAM/SDRAM。S3C2410采用nGCS[7:0]8个通用的片选信号来选则这些组。读写时序图如图3所示。

  


  2.3 PC/104总线控制器的设计

  本设计采用。Xilinx公司XC95144XL的CPLD,共144个引脚,其中可编程的引脚数117个,满足PC/104总线控制器上输入输出控制信号数目的要求;器件正常工作电压3.3 V,I/O端口的负载电流可达24 mA,延迟时间tpD=5 ns,工作频率f=178 MHz,可与S3C2410的AHB总线的时钟频率HCLK匹配。VHDL是电子设计的主流硬件描述语言,具有很强的电路描述和建模的能力,从而大大简化了硬件设计的任务,提高了设计的效率和可靠性,并在语言的易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。Max+PlusⅡ界面友好,使用便捷。因此选择用VHDL语言编写有限状态机来实现PC/104总线控制器,通过Max+P1usⅡ开发工具进行逻辑波形验证。

  2.3.1 控制器内部状态图

  在PC/104总线的设计中,设计的重点是总线控制器的实现,能否完成PC/104总线驱动,关键在于控制器能否正常运行。PC/104总线控制器的工作流程:控制器等待选通信号有效,如果nGCS有效则锁存地址并保持ARM总线状态,然后进行读写操作判断,最后把数据和相应得控制信号加在PC/104总线上,完成操作后释放ARM总线。其状态转换图如图4所示。

  


  2.3.2 I/o空间读写逻辑仿真波形

  本设计的有限状态机采用VHDL语言设计,主要完成PC/104总线控制器的状态图转换,从逻辑仿真波形上看:ARM读操作时,n0E信号有效(低电平),从总线上读人数据,同时使总线控制信号有效;写操作时,nWE信号有效(低电平),把数据直接写到总线上,同时也使总线控制信号有效,图5的仿真波形基本符合本设计的S3C24lO和PC/104总线读写时序要求。

  3嵌入式Linux下的驱动程序开发

  为了在Linux 2.6操作系统下实现本文所述的功能,必须为总线控制器提供一个驱动程序。在Linux中,所有的硬件设备都像常规文件一样看待,他们可以使用和操作文件相同的,标准的系统调用进行打开、关闭和读写。用户程序通过相应的系统调用来访问硬件设备,设备驱动程序的作用正是为这些系统调用提供接口。为了能对PC/104总线上的地址空间进行随机、连续访问,把PC/104总线设计成块设备。

  设备驱动程序本质上说就是一组相关函数的集合。在驱动程序模块化编程中,首先需要调用入口函数im-modLde()完成设备驱动程序的初始化工作:利用函数

  在系统中注册和PC/104相关的几个中断,关联中断服务例程,并设置中断等级;利用函数setexternal irq(int irq,int edge,int pulIup)设置中断的触发模式,和是否利用处理器的内部上拉;其中最重要的一个工作就是向内核注册设备,调用函数 ,注册成功后,该设备获得系统分配的主设备号、自定义的次设备号,并建立起与文件系统的关联;在本应用中只需要定义write()、read()两个文件操作,因此文件系统接口可定义为:

  最后驱动程序卸载时调用出口函数Clearnup rood-ule(),通过函数

  释放相应的资源。

  4 结 语

  本文重点描述对PC/104控制器的设计,从满足系统的时序要求出发,采用CPLD器件和VHDL语言完成对PC/104总线上信号的驱动,同时在嵌入式Linux环境下编写驱动程序,提供了一套完整的基于ARM嵌入式系统上实现PC/104总线的方案,该方案将在实践应用中进一步验证和完善。本文成功地把工业控制计算机技术中的嵌入式PC/104总线结构在S3C2410处理器上实现,该系统具有体积小、功耗低,克服了传统PC机的缺点;采用CPLD通过VHDL语言实现PC/104总线控制器,缩短开发的成本和周期,提高了开发的灵活性。

关键字:ARM嵌入式系统  PC/104总线 引用地址:基于ARM嵌入式系统的PC/104总线设计

上一篇:PCI总线数据输出板驱动程序的开发
下一篇:基于ARM-LPC2368的网络接口的设计与实现

推荐阅读最新更新时间:2024-05-02 21:38

ARM-Linux嵌入式系统的BootLoader分析与设计
0 引言 由Boot Loader和固化在固件(firmware)中的Boot代码(可选)共同组成一个嵌入式系统的引导加载程序。它的作用和功能就像固化到计算机内主板上的一个ROM芯片程序BIOS(basic input output system)。但是它一般不配置像BIOS那样的固件程序,这是因为要考虑经济方面的原因,因此必须自己完成这方面的工作。Boot Loader可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。它的实现严重地依赖于硬件,特别是在嵌入式系统中,即使基于同一个CPU的Boot Loader,对于不同的板子,也有很大的不同。 1
[单片机]
<font color='red'>ARM</font>-Linux<font color='red'>嵌入式系统</font>的BootLoader分析与设计
ARM和DSP嵌入式系统为核心的实时仿真平台的开发
引 言 一个大型的船舶轮机模拟器蕴含着30多个全物理过程的数学模型,涉及千余个实时参变量,通常采用功能分散的DCS网络来实现。即便如此,个别仿真工作站由于模型复杂、任务繁重,难以满足实时仿真的要求。 例如,动力推进系统的仿真是一个半实物在环的仿真系统,其中既有虚拟的动力装置即仿真计算机上运行的数学模型,又有真实的控制盘台、物理显示设备,是一种集实时控制和高速运算功能于一体的典型系统。 早期开发成功的SMSC2000型轮机模拟器采用工控机作为仿真计算机,所有数据的处理和输入输出的控制都经过它的数据采集卡来完成。推进系统仿真的精确度与实时性无法两全。近期航运仿真中心在开展多模式机舱仿真实验的同时,针对I/O点最多(200多个)、
[单片机]
以<font color='red'>ARM</font>和DSP<font color='red'>嵌入式系统</font>为核心的实时仿真平台的开发
浅谈ARM嵌入式系统如何学习与入门
关于ARM嵌入式系统的开发,一直是it行业人员关注的热点,也是属于一个高门槛的行业,目前也有很多的开发者正在从事着这方面的学习。而那些对于那些想去学习开发者还有那些初学者往往会碰到难题,到底从哪里学起才好?学了半天还是不懂?其实往往在一门技术的学习上,特别是在基础知识上不能胡乱的学习,只有掌握了技术的核心,运用起来才会得心应手。那么ARM嵌入式系统该如何掌握,怎么去快速入门呢? 浅谈ARM嵌入式如何学习与入门 嵌入式简单来讲,就是软硬结合的东西,嵌入式开发又分为两类,这两类各有特点,当然需要的资质也完全不同。一类是学电子工程、通信工程等偏硬件专业出身的人,主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如Bo
[单片机]
用CPLD实现基于PC104总线的429接口板
  PC104总线系统是一种新型的计算机测控平台,作为嵌入式PC的一种,在软件与硬件上与标准的台式PC(PC/AT)体系结构完全兼容,它具有如下优点:体积小、十分紧凑,并采用模块化结构,功耗低,总线易于扩充,紧固堆叠方式安装,适合于制作高密度、小体积、便携式测试设备,因此在军用航空设备上有着广泛的应用,但也正是PC104板的这种小尺寸结构、板上可用空间少给设计带来了一定的困难,所以本设计采用了复杂可编程器件CPLD,用CPLD完成了PC104总线与429总线通讯的主要电路,大大节省了硬件资源,本文着重介绍了CPLD部分的设计。 1 系统总体设计      CPLD是一种复杂的用户可编程逻辑器件,由于采用连续连接结构,易于预测延
[嵌入式]
专用于ARM的NI LabVIEW嵌入式模块进行嵌入式系统教学
  通过一系列面向机器人开发的实验室实践课程与团队项目,吸引电子工程和计算机科学学院的同学们积极投入嵌入式系统设计。   The Solution:   采用专用于ARM单片机的NI LabVIEW嵌入式模块,对连接到iRobot Create移动机器人平台的Cortex-M3单片机编程,使得同学们可开发一个嵌入式系统,与具有实时约束的真实世界进行交流。 加州大学伯克利分校工程师采用专用于ARM单片机的NI LabVIEW嵌入式模块,对连接到iRobot Create移动机器人平台的Cortex-M3单片机编程,使得同学们可开发一个嵌入式系统。    通过使用LabVIEW,同学们可以更快地开发复杂的功能,使整个过程
[测试测量]
专用于<font color='red'>ARM</font>的NI LabVIEW嵌入式模块进行<font color='red'>嵌入式系统</font>教学
ARM嵌入式系统软件实时时钟的设计
1 引言     现在的许多设备对实时时钟都有很高的要求,在片集成的实时时钟往往只注意到了其使用的方便,而没有考虑在实际应用中还有很多特殊的要求。本文讨论如何使用独立的外扩实时时钟,来满足这些要求。 什么是实时系统?就是系统运行时的反馈信息或者指令,必须在要求的时间内发出或者返回,否则视为无效。例如,数据采集的时候,必须在对应的时间内得到信号,以保证数据采集的有效性。那么什么是实时时钟?就是采用独立的晶振(或集成),拥有独立供电系统,永不间断的运行,从而给系统提供可靠的系统时间。     集成的实时时钟和独立实时时钟的比较:     以博创UP-NETARM3000开发板为例,它使用的是三星公司生产的S3C44B0XARM7处理器
[单片机]
<font color='red'>ARM</font><font color='red'>嵌入式系统</font>软件实时时钟的设计
SyncFlash存储器在ARM嵌入式系统中的应用
随着嵌入式处理器的迅速发展,32位RISC处理器的应用越来越广泛,许多基于ARM核的微处理器都集成了SDRAM控制器。应用系统中一般都是采用SDRAM存储器作内存、NOR Flash作程序存储器。这种应用存在着缺点,而本文介绍的采用SyncFlash(即同步Flash存储器)设计嵌入系统的方法能很好地克服这些不足。 SyncFlash存储器 在嵌入式应用系统中用作程序存储器的器件一般是EPROM、NOR Flash、EEPROM等。大家都比较熟悉Flash 存储器,应用也很多,而SyncFlash存储器相对较陌生,目前应用也较少。SyncFlash存储器就是在NOR Flash的基础上增加了同步接口(所有信号均在时钟上升沿锁存
[单片机]
SyncFlash存储器在<font color='red'>ARM</font><font color='red'>嵌入式系统</font>中的应用
基于PC/104总线的转台速率校准卡的设计
引言   转台是检测、校验陀螺必不可少的设备。由于有不同种类、不同功用的陀螺,出现多种型号的转台。除了极少数的高精度转台(惯导级的)具有 速率 输出校准装置,其余绝大多数是中低精度转台,都没有速率输出 接口 。鉴于陀螺的重要性,对转台的主要指标速率进行校准是很有必要的。因为转台的总体存量很大,型号各异,所以研制一套通用的转台速率校准装置有着重大的意义。本课题采用高精度速率陀螺直接标定中低精度转台的速率,配合计算机技术进行补偿和拟合,可以简便易行地实现对多种转台的速率校准。用于转台速率较准的测试原理如图1。本文介绍的是转台校准装置中的核心模块转台速率校准卡的设计。              图1 转台速率校准原理图  
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved