您的位置 首页 资料

根据I2C总线的I/O口扩展规划

摘要:由于传统的NI-DIO驱动板卡能够驱动的I/O口数量比较有限,一般只应用在测试通道数比较少的实验场合。而在一般的大型环境试验中,要求能对多个产品同时测量。如果使用传统的DIO板卡测试,就会出现测

摘要:因为传统的NI-DIO驱动板卡能够驱动的I/O口数量比较有限,一般只运用在测验通道数比较少的实验场合。而在一般的大型环境实验中,要求能对多个产品一起丈量。假设运用传统的DIO板卡测验,就会呈现丈量通道数量不行的状况。针对此类问题,提出了运用单片机与I/O扩展芯片PCA9554/A选用I2C通讯进行I/O扩展,上位机选用LabVIEW编程,界面友爱、操作便利,在环境实验中起到了杰出作用。
关键词:I/O口;MCU;PCA9554/A;LabVIEW

0 导言
跟着电子技术的飞速发展,各类电子产品像漫山遍野般许多的进军电子市场,其间也包括正在蓬勃发展的轿车电子职业。一般轿车电子职业对这些电子产品的要求比较高,会有许多的技术指标去标准它们,其间很重要的一环就是环境实验。出于对作业效率的考虑,一个环境测验台架往往要求能对多个产品进行一起测验。而这些产品的引脚数量一般也会比较多,这样一来,测验台架上所需的测验通道数量就会许多,往往多达几百个。
一般大都用于轿车电子产品的环境测验台架里边会集成有NI公司的DIO驱动板卡,因为它们的驱动端口比较多,便专用来担任产品的环境实验测验。以NI-6509为例,这是一个12×8的板卡,总共有12个通道,每通道8位I/O操控组成,总计96路I/O操控;NI-2532的矩阵板卡,其能支撑的通道数是32×16,共512路。这些I/O端口,针对一般的运用是够的,但假设用于引脚数量比较多的产品测验,便会呈现I/O口数
量不行用的局势。假设环境实验要一起测验12个产品,每个产品有40个引脚,那么关于产品引脚继电器就有必要要有480个,再加上一些外围辅佐仪器介入的切换,那么在这种状况下,这类DIO板卡的运用就显得很牵强。
针对此类问题,本文提出了一种有用的解决方法,就是运用单片机的I/O口合作市面上一些常见的I/O扩展芯片,进行端口的扩展。单片机有4个端口,每个端口8位,总计32个位操控;扩展芯片,比方I2C芯片,只需求2根线(SDA&SCL)即可,因而能够连16组I2C通讯,且每组可一起支撑8个芯片(每组最大可包容8个地址),每个芯片又可操控8个端口。因而,单片机理论上,至少可支撑16×8×8个端口。而且,假设芯片头地址能够不一样的话,例如PCA9554和PCA9554A,那么端口数量又能够增加一倍,到达2 048个,这是一般的板卡所远远不能及的。

1 体系硬件规划
本文所涉及到的硬件比较简单,上位机与MCU之间经过RS 232串口衔接,MCU靠外部电源供给的5 V直流电进行作业。再将MCU的2个端口模仿成SCL,SDA两根线与PCA9554/A进行通讯衔接。这样就形成了上位机发送指令,单片机承受指令并进行相应解析后再经过SDA、SCL两根线向PCA9554/A发送指令数据,操控它的输入与输出。
1.1 PCA9554/A芯片介绍
PCA9554和PCA9554A是16脚的CMOS器材,它们供给了I2C的运用中的8位通用并行输入/输出口(GPIO),PCA9554/54A包括一个8位装备寄存器(输入或输出挑选)、8位输入寄存器、8位输出寄存器和一个极性回转(高电平或低电平操作有用)寄存器。体系主操控器经过写I/O口相应的装备位来激活端口的输入或输出。PCA9554/A有3个硬件管脚(A0,A1,A2)来完成不同的I2C地址,最多答应8个器材共用一个I2C总线上。PCA9554与PCA554A的专一差异在于I2C地址不同,这样最多答应16个器材(9554和9554A各8个)衔接接到同一个I2C总线上。
1.2 依据PCA9554/A的硬件规划
按I2C规约,PCA9554的器材地址为0x40,PCA9554A的器材地址为0x70,当然,因为硬件地址引脚A0~A2可寻址8个器材,所以器材地址并不专一,例如:A0接GND,A1接VCC,则PCA9554的器材地址为0x4C。运用STC89C52单片机为主控芯片,单片机的P1.3管脚与PCA9554的SDA管脚相连,P1.2管脚与PCA9554的SCL管脚相连。4个LED灯能够受四个按键操控,也能够受上位机进行操控。

2 体系软件规划
本文体系软件规划首要分为两部分,一个是上位机的LabVIEW程序规划;另一个则是单片机底层C言语的程序规划。
2.1 LabVIEW的程序规划
上位机的程序规划首要是与MCU串口通讯,经过向MCU发送操控指令来到达对PCA9554/A的I/O口进行操控的意图。
LabVIEW是一种图形化编程言语,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境。运用这种言语编程时,根本上不写程序代码,取而代之的是流程图。运用它进行原理研讨、规划、测验并完成仪器体系时,能够大大提高作业效率。
本文首要是用LabVIEW言语编写与MCU的串口通讯程序,界面友爱、操作便利。LabVIEW操控单片机是经过Instrument I/O的Serial控件调用来完成的。首要用到其间的VISA装备串口节点,包括串口装备、读、写、封闭等节点。经过对这些节点的调用就能够便利的对串口进行操作。
这儿,Command to RS 232栏中的指令有必要与单片机事前烧录好的代码相符合。这样,单片机才能将接纳到的指令进行正确匹配,并履行相应操作。
程序左端调用Configuration模块,进行串口的根本装备,比方BaudRate、数据位等,使这些参数与单片机里边的串口预界说设置相一致;右侧是Close模块,用于程序退出时,释放对串口的操控;中心是程序主体,包括对串口的读、写操作,完成对串口的双向通讯。为了程序简练、形象易懂,此次程序顶用到了对LabVIEW子函数的调用,如RS 232-ini,RS 232W-R等模块,这些子函数就是用VISA串口节点来编写的,仅仅做了封装罢了。
2.2 MCU的串口通讯
上位机是经过串口将指令字符传递给单片机的。单片机对串口的读操作是经过中止的方法完成的,以字符为单位,每接纳到一个8位的字符,MCU发生一个读中止RI=1,此刻,单片机将接纳到的字符储存起来,然后软件将RI复方位0,持续接纳下一个字符。本体系中,一切计算机发送给单片机的指令均以‘?’结束。MCU接纳到‘?’后,发生一个中止位,然后与事前界说好的指令进行匹配,假设指令事前有界说,那么就会履行相应的操作。

2.3 MCU的I2C时序模仿
上位机向单片机发送指令数据,假设这些指令已在单片机中事前界说好,那么单片机将会经过模仿的SDA与SCL两个引脚,依据PCA9554/A的datasheet时序图,将操控指令数据传递给PCA9554/A,然后完成对PCA9554/A的I/O口进行操控。
2.3.1 PCA9554/A的写操作
依据I2C总线传输协议以及PCA9554/A的总线读写特性,能够看出:对PCA9554/A端口的写操作首要是经过对它的输出端口寄存器进行写操作的。详细进程为:在SCL为高电平期间,SDA由高电平向低电平转化作为开端信号,SDA由低电平向高电平转化则为中止信号。在开端条件后,有必要是从机地址,关于PCA9554来说从地址的高4位是0100,而PCA9554A则是0111,A2,A1,A0的凹凸电平状况能够有8种组合,最终一位是读写挑选位。从地址发送完后就是等候从机的应对信号ACK,从机正确应对后便开端由主机发送指令字节,接着又是等候从机应对,应对后便开端发送数据了。以下为PCA9554的写操作部分代码。

2.3.2 PCA9554/A的读操作
对PCA9554/A的读操作略微费事一点,需求在收到第2次从机应对信号后再一次发送总线开端信号及从机地址即可。

因为篇幅原因,以上均只给出了部分重要程序。需求提出的是I2C总线上的开端、中止、以及读写数据的时序模仿均要参阅PCA9554/A的datasheet中的时刻参数要求,严厉对应。

3 结语
本文运用单片机与I/O扩展芯片PCA9554/A选用I2C通讯进行I/O扩展,提出了详细的软硬件规划,完成了上位机对PCA9554/A端口的直接操控,并进行了I/O的有用扩展。并成功的运用在对多个轿车电子产品一起丈量的环境实验中,取得了很好的作用。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部