英创信息技术工控主板EM9160介绍
发表于5年前 | 作者: blog | 分类: 嵌入式工控机 | 破蛋日:2020年01月25日 |
单元,进行数据通讯。通常情况下,我们建议采用基于GPIO的SPI通讯协议实现方案,其优点是灵活性,客户可使用任意的GPIO管脚来实现SPI通讯,有关这方面的技术方案的实现,可参考英创网站的《使用GPIO控制SPI接口的AD芯片》一文。在SPI通讯中,还有一类应用需要进行量的传输,且要求尽可能高的波特率,这时若采用基于GPIO的方案,就可能造成占用过多的
获得有效的文件句柄后,就可通过DeviceIoControl(…)函数来操作SPI接口了。在EM9160的SDK中已封装了相应的API函数,以方便应用程序的使用。相关的数据结构和函数定义,包括在“SPI_API.h”中:
尽管EM9160的硬件波特率可以高达100Mbps,但为了保证可靠传输,建议应用程序把波特率控制在10Mbps以下。SPI时钟极性dwCLKPolarity,在数据手册中通常记为CPOL,= 0表示在没有数据传输时为低电平,= 1表示没有数据传输时为高电平。SPI时钟相位dwCLKPhase,在数据手册中通常记为CPHA,工控主板= 0表示时钟的第一个沿更新数据、第二个沿锁存数据,= 1表示时钟的第一个沿锁存数据、第二个沿更新数据。下面的事宜图,以8-bit数据为例:
在调用上述函数时,注意指针pSPIState需要初始化分配空间。在设置好SPI参数后,就可调用下面的函数进行具体的数据通讯了
1、SPI设备驱动程序的内部buffer缺省设置为1K字节,因此每次通讯的字节数不能超过1K字节,对大于8-bit的数据,每个数据均按2个字节计算。
3、参数DatLength是以数据为单位计算的,所以若传输8-bit数据,其最大值为1024,若传输8-bit以上数据,其最大值为512。
4、对传输长度超过SPI设备驱动程序的内部buffer长度的应用,可通过循环多次调用来实现数据通讯。
文本标签:工控主板
本文地址:http://www.huapuxin.cn/blog/1789.html
除非注明,本站所有文章皆为原创,转载请以链接形式标明本文地址