您的位置 首页 汽车

根据EP9315和MAX2_EPM240完成输入输出模块的规划

嵌人式丁业控制系统的突出特点是在高低温、高电磁辐射环境下的抗干扰性和可靠稳定性。和PLC系统相比。其

嵌人式丁业操控体系的杰出特点是在高低温、高电磁辐射环境下的抗干扰性和牢靠安稳性。和PLC体系比较。其显着的长处是处理速度快、便利进行工业以太网的组成、编程便利、通用性好,而且价格仅仅是PLC的几分之一,具有很好的发展前景。本论文首要论说了以EP9315和MAX2_EPM240为中心的嵌入式输入输出体系的规划。

1、体系构成

整个嵌入式输入输出体系分为嵌入式体系、使用模块(即输入输出模块)和转化模块三部分,整体结构如图1所示。

依据EP9315和MAX2_EPM240完成输入输出模块的规划

依据EP9315和MAX2_EPM240完成输入输出模块的规划

图1体系结构框图

1.1 嵌入式体系

本规划挑选Cirrus Logic公司高功用的ARM9嵌入式微处理器EP9315.该微处理器具有ARM920T内核一切的优异功用。丰厚的集成外设接口包含以太网MAC、串口,2.0全速HOST USB、专用SDRAM通道的LCD接口、接触屏接口等。

Cirrus logic公司为用户供给了依据该处理器的全功用开发板。合作Windows CE.net嵌入式操作体系,体系开发效率高、运转安稳,为工业操控供给了牢靠的体系渠道。依据定制的WinCE操作体系完成工业操控中使用模块的专用驱动,进步嵌入式体系的通用性。

本文所述体系使用了开发板丰厚的集成外设接口。经过串口进行eboot下载;经过以太网进行操作体系内核和使用程序的下载,并完成以太网通讯;HOST USB接鼠标便利用户操作;LCD屏完成显现,接触屏接口完成面板接触操作。

1.2转化模块的规划

转化模块用于将开发板上需求用到的信号线引出,首要包含数据线、地址线和部分I/O操控信号(如nWR,nRD,NCS3,nWAIT等)。在转化模块中首要用到了电平转化驱动芯片74LVXC4245,其效果包含:(1)改进信号的质量;(2)抗干扰;(3)完成电平转化;(4)进步EP9315管脚的驱动才能。

1.3依据CPLD的输入输出模块的规划

1.3.1输入输出模块的规划思维

在工业使用现场,输人/输出模块一般包含数字量输入模块、数字量输出模块、数字量输入/输出模块、模拟量输入模块、模拟量输出模块、模拟量输入/输出模块等。

考虑到不同使用体系杂乱程度不同,因此对输入输出端口的需求也就不同。为了能依据实际需求灵敏增加不同品种的输入输出模块,规划时选用了如下思维:

ARM9的数据总线、地址总线和操控总线一起和多个插槽相衔接,而且给每个插槽赋予一个固定的地址,称为插槽地址,各类模块可刺进任何一个插槽。

各类输入/输出模块均依据CPLD进行开发规划,完成对外界体系的检测与操控。但关于不同的输入输出使用体系而言,其输入信号以及输出信号特性各异,表现出杂乱性。规划时有必要考虑到上述杂乱性,依据实际状况,对相应输入输出信号进行信号调度。为了确保输入输出模块和ARM9主控器衔接的安稳性和快速性,选用了总线方法的扩展:将CPLD挂在ARM9的BANK3空间,衔接11根地址线,16根数据线,以及相应的操控线(包含nRD、nWR、nCS3、nWAIT)。各类输入/输出模块整体规划框图可如图2表明。

图2输入输出模块结构框图

信号条理电路的首要功用为:完成对各类输入信号的凋理,使之满意CPLD输入管脚的电气要求;完成对CPLD输出信号的调度,使之满意使用体系的电气要求。CPLD总线功用:经过各类总线树立CPLD与ARM9之19的信号联络,完成CPLD与ARM9之间的通讯。

因各类模块可刺进任何一个插槽,为了完成不同品种的模块的自动识别,经过硬件规划言语赋予每类模块一个ID码。ARM经过“读ID码地址”读取ID码,即可判别是何种模块。随后即可依据模块类型实施对应的操作。

1.3.2 CPLD的选用端口数据。

Altera公司的MAXII器材选用了全新的CPLD结构,比以往的MAX器材具有更高的性价比、更低的功耗、更大的容量,使其成为杂乱操控使用的抱负计划。考虑到输入输出模块的功用相对简略,不需求很多的杂乱运算,本体系选用容量相对较小的EPM240进行规划。

1.3.3 CPLD的软件规划

为了经过ARM9的地址总线、数据总线和操控总线完成对输入输出模块的读写操控,有必要依据ARM9的读写时序图对输入输出模块的CPLD进行硬件言语编程规划。

输入模块要害代码如下:

assign data_bus=((~(RDICS))&(address==baddr[10:5])&(haddr[4:0]==5‘b00000))?16’b0000000011011111:16‘bz;

assign data_bus=((~(RDICS))&(address==baddr[10:5])&(baddr[4:0]==57b00100))?dc24v_in:16’bz;

程序中第一个assign句子功用:当地址总线的低五位为5‘b00000,即为“读模块ID码地址”,就向数据总线输出该模块的ID码。

第二个assign句子功用:当地址总线的低五位为5“b00100,即为“读模块数据地址”,就将模块输入端口数据读入数据总线。

输入模块Quatuttis II仿真成果如图3所示。从图中能够看出,当地址总线的低五位地址为5’b00100时,模块输入端口数据(de24v_in)被读入到数据总线(data_bus)。

图3输入模块仿真时序图

同理,可进行输池模块规划,要害代码如下:

always @ (posedge pro_clk) begin

if((-WRITS))&(address==baddr [10:5])&(bad&[4:0]==5‘00010))begin

mem_data[ i ]=data_bus;

i=i+1;

if((mem data [0]==mem_data[1])&(mem_data[1]==mem_data[2])&(mem_data[2]==

mem_data[3])) begin

relay_reg = mem_data[0];

end

end

end

assign relay = relay_reg;

assign led = ~relay_reg;

assign data_bus = ((~(RDICS))&(address==baddr[10:5])&(baddr[4:0]==5’b00000))?16‘b0000000011011110:16’bz;

程序中alwavs句子功用:当地址总线的低五位为5‘b00010,即为“写模块数据地址”,就将数据总线数据写入到寄存器mem_data[]。为了增强抗干扰才能,程序中采取了接连读取四次数据总线数据并判别是否共同,若共同,才更新模块输出端口数据。

程序中第三个assign句子功用:当地址总线的低五位为5’b00000,即为“读模块ID码地址”,就向数据总线输出该模块的ID码。

输出模块Quarutu。II仿真成果如图4所示。从图中能够看出,当地址总线的低五位为5‘b00100时,数据总线(data_bus)被写入到模块输出端口(relay)。

图4输出模块仿真时序图

2、 体系软件规划

2.1驱动程序规划思维

输入输出模块驱动程序依据流接口驱动程序类型进行规划。驱动程序的规划一方面应依据完成功用考虑到物理地址的合理分配,另一方面应考虑到与使用程序的接口。下面就环绕这两个方面详细论说驱动程序的规划思维。

2.1.1物理地址的合理分配

对输入模块,包含有如下两种操作。(1)读lD码;(2)读取输入端口数据。对输出模块,包含有如下两种操作。(1)读ID码;(2)写数据至输出端口。

为了确保驱动程序的通用行,便是说,对刺进某个插槽的模块,无论是是输入模块,仍是输出模块,驱动程序结构是相同的。可对每个插槽分配三个物理地址,包含读取ID码地址(简称“ID地址”)、读取输人模块数据地址(简称“读地址”)、写数据至输出模块地址(简称“写地址”)。使用程序经过“ID地址”读取的ID码数据判别模块的类型,从而经过“读地址”对输入模块进行读操作,或是经过“写地址”对输出模块进行写操作。对输入输出模块的读写操作包含字操作、字节操作、位操作三种方法,可在驱动程序中经过“与运算和移位运算”改换完成。对每一插槽,三个物理地址可如表1分配:

表1使用模块物理地址分配

在初始化函数(IO_Init)中,经过函数VirtualAlloc()和VirtualCopy()把EP9315针对输入输I叶J模块的物理地址和操作体系的虚拟空间联络起来,完成地址映射。

2.1.2输入输出模块读写操作完成

操作输入输出模块的使用程序流程可简述如下[3]:发送“读模块ID指令码”-》接纳驱动程序回来数据(即模块ID码)-》依据模块ID码判别模块类型(输入模块仍是输出模块)-》依据模块具有功用发相关指令码进行模块读操作或写操作(包含字操作、字节操作和位操作三种状况)。

驱动程序规划思路如下:在写函数(IO_WRITE)中完成功用为:接受指令码,并将指令码存入某指定变量一判别指令码是否是写指令码一若是就履行写操作(包含字操作、字节操作和位操作三种状况)。在读函数(IO_READ)中完成功用为:判别指令码是否是读指令码一若是就履行读操作并回来读取的数据(包含字操作、字节操作和位操作三种状况)。

2.1.3输入输出模块读写脉宽的调整

EP9315在WinCE操作体系下主频到达200MHz,总线频率为100MHz,外设时钟为50MHz,因此,EP9315宣布的读写及使能信号脉宽缺乏50ns。能够经过改动EP9315的BANK3上的读写时序.使其能和CPLD交互。详细可经过设置使用模块地址空间存储空问读写特性寄存器SMCBCR3中等待时间位WST1和WST2完成。

若SMCBCR3的代码设置为:SMCBCR3=2000ffef完成功用为:设置nCS3数据宽度为32bits,读写脉宽为320ns。这种设置使得CPLD具有较低的总线频率,满意对CPLD的读写时序要求。

3 、小结

本文作者立异点是依据MAX2_EPM240进行了输入输出模块的硬件软件规划,在Windows CE.net操作体系下,完成了EP9315嵌入式体系对输入输出模块的操控,且可依据实际需求,灵敏选用各类模块。该体系功耗低、安稳性好,合适工业操控中的运用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/91521.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部