导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→工控主板EM9360的GPIO的各种使用方法 [原创][emtronixuser]

 *第31610篇: 工控主板EM9360的GPIO的各种使用方法 [原创]

  
楼 主:emtronixuser 2009年9月15日16:40
 工控主板EM9360的GPIO的各种使用方法 [原创]
文章来源:

    英创公司的ARM9工控主板产品 EM9360是一款预装WinCE操作系统,以多种通讯接口、支持各种扩展为其技术特色。EM9360的板载的3路以太网接口、6路串口以及1路CAN接口,均带有标准的WinCE驱动程序,支持应用程序通过WinCE相应的API函数来操作各路网络接口。此外EM9360还与英创公司其他ARM9主板一样,带有精简ISA扩展总线以及12位通用GPIO,精简ISA总线的基本使用方法可参考英创网站的相关信息,而本文则主要介绍EM9360主板中12位GPIO的各种使用方法。 


通用GPIO 

EM9360上电后的各位IO均处于数字输入状态,通过相应的API函数(定义在em9360_isa_dio.h文件中)这12位GPIO可独立设置为输入或输出,输出电平也可独立设置。 

精简ISA总线的高位地址线 

基本的精简ISA总线只包含低5为地址总线SA0 – SA4,对大多数IO类型的扩展,5位地址线已足够使用。为了支持存储器类型的扩展,EM9360提供对高位地址总线的支持,其中的SA5 – SA12与GPIO4 – GPIO11复用管脚。为了激活高位地址总线,应用程序需在程序初始化阶段,通用调用API函数 

int ISA_ReadUchar( int nSeg, UINT nOffset, UCHAR* pRdvalue ); 

进行一次“哑读”即可。具体需要激活的高位地址还可通过偏移量nOffset的输入值来选择,但至少需要激活SA5和SA6这2位地址总线。举例说明如下: 

1.激活SA5和SA6,而其他的还是保持为GPIO,则nOffset = 0x007F; 
2.激活SA5 – SA7,而其他的还是保持为GPIO,则nOffset = 0x00FF; 
3.激活SA5 – SA12,最大访问8KB空间,则nOffset = 0x1FFF; 

在使用高位地址扩展时,需要注意以下事宜: 

·精简ISA总线有2个片选输出,其中CS1#只支持最大1KB的访问空间,而CS0#则可支持最大8KB的访问空间,所以通常用CS0#作为存储器单元的片选控制。 
·若客户应用还需要访问更大空间,EM9360还可引出SA13 – SA15信号,使CS0#的访问空间达到64KB。 
精简ISA总线扩展的存储器单元一般只能用作数据存储,不能作为程序运行空间。 
·激活的地址线应当是由小至大,连续地址空间。 

时间同步功能 

EM9360支持时间同步功能,基本的使用方法是应用程序打开“PPS1:”设备驱动程序,此时GPIO0将自动转为同步脉冲输入PPS_IN#(低电平有效)。PPS驱动程序被PPS_IN#脉冲触发后,将立即发送时间同步事件,供上层应用线程做必要处理。根据用户设置,PPS驱动程序还可在GPIO1上输出同步脉冲PPS_OUT#(同样是低电平有效),以及自动对当前时间进行整秒调整。 

更多的外部中断 

基本的精简ISA总线只提供1条外部硬件中断输入IRQ1,上升沿有效。若客户应用需要扩展更多的通讯接口,如增加第二路CAN接口、增加8路串口等等,这时仅仅一条外部中断就不够了,需要更多的外部中断支持,GPIO2和GPIO3则可用于外部中断输入。事实上EM9360的驱动已可支持类似这样的扩展,感兴趣的客户可与英创公司联系了解进一步的使用方法。 



>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:什么是嵌入式系统?英创嵌入式主板,嵌入式网络模块

[下一篇主题]:联脉电子/I-7017采集模块;八路4~20mA电流环信号采集模块