英创信息技术EM9287的扩展总线及应用介绍

网友投稿 300 2022-11-26

英创信息技术EM9287的扩展总线及应用介绍

EM9287主板上共有4组接口排针,分别命名为CN1 – CN4,如下图所示:

EM9287的CN1 – CN4所在位置示意图

其中的CN4即为精简ISA总线的接口排针。由于LCD显示被作为了EM9287的标准配置,因此一般情况下,EM9287只焊了CN3插座,没有焊CN4的插针。若客户要求所购的EM9287支持精简ISA总线,则需要在购买时特别申明此需求。注意,支持精简ISA总线的EM9287主板,不再焊接CN3插座,而是带有CN4双排插针。与CN1和CN2不一样,CN4为2mm间距的双排插针。

CN4上个插针的信号定义如下表:

所有接口信号的电平均为3.3V TTL。EM9287的精简ISA总线支持双向16-bit数据总线,8位地址总线,以及3条控制总线。3条总线控制信号(片选、读脉冲、写脉冲)均为低电平有效。单数据读写的总线周期为360ns,而多数据读写的总线则只有240ns,可保证每秒8M字节的数据吞吐能力。精简ISA总线的典型总线时序如下:

单数据写时序

单数据读时序

数据块写时序

数据块读时序

精简ISA总线驱动的设备节点为“/dev/em9287_isa”,通过标准的文件open函数打开:

int fd; fd = open('/dev/em9287_isa', O_RDWR);

EM9287精简ISA总线的地址范围为0 – 255。为了简化应用程序,避免使用ioctl专用定义,总线地址通过标准函数lseek来设置:

unsigned int offset; //设置地址到offset lseek(fd, offset, SEEK_SET);

写操作的基本调用形式为: int rc; unsigned int buf[]; //数据buffer unsigned int len; //实际写的数据长度 //准备需要写出的数据.... rc = write(fd, buf, len * sizeof(unsigned int));

相应地,读操作的基本调用形式为: rc = read(fd, buf, len * sizeof(unsigned int)); //处理在buf的读取数据....

读写数据的长度至少为1,最长不能超过16K(16384)。在进行数据块读写时,需要注意,16K数据的读或写将耗时4ms,而Linux分给每个线程的时间片最长只有10ms。一般情况下,为了保证系统的及时响应,每个线程运行的时间都不宜过长。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:十三、hadoop常用服务端口
下一篇:Spring Task 动态修改任务执行计划cron方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~