首页 > 范文大全 > 正文

利用端口扩展器提高设计灵活性并降低成本

开篇:润墨网以专业的文秘视角,为您筛选了一篇利用端口扩展器提高设计灵活性并降低成本范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

在嵌入式设计中,即便进行了周密的计划,完全按照最严格的程序进行工作,项目也可能会遭遇理查三世一样的失败:比方说,您所选用的处理器可能不具备足够的引脚,导致目标难以实现。在选择芯片、驱动LED时,总难做到全面,人们总是事后才失望地发现,本应选择引脚更多的另一款处理器。即便进行了前期计划,为设计上的问题预留了空间,但还是不能确保得到你想要的引脚(还要考虑到安全性),因为市场或公司的市场营销策略总是要求尽可能降低成本。即便您全力以赴,总算得到批准采用具有10个额外引脚的处理器,能够按时完成设计工作,但这样做只能造成公司下一步肯定采取降低成本的措施。

最明智的选择就是选择这样一款处理器,不仅能够顺利完成工作任务(处理、外设组合),而且还能够利用总线上的外部与扩展器件(即端口扩展器)以满足更高的I/O要求。我们可以预留两个适用于标准FC通信总线的引脚,这样今后就能根据需要添加几乎无限数量的额外引脚,对软硬件不会造成什么影响,这充分反映了12C端口扩展器的优势。

端口扩展器简介端口扩展器某系列器件中的一员,通常为从器件,位于通信总线(通常为12C,这是由philips公司开发的双线双向串行通信总线,不过也可以是其他标准总线)上,用于发送串行命令,以便读取或写入I/O引脚。主处理器(需要更多引脚的处理器)是通信总线主控,一项通常不需要特定的硅技术功能即可完成的工作,尽管采用I2C外设块可以大幅简化该工作。有的端口扩展器比较简单,有的则比较复杂,提供了各种可选功能,不过他们的基本操作都是一样的:

1.首先封装引脚以调节从器件地址的高低,然后主器件对其进行配置,并通过通信总线写人命令,定义哪些引脚为输出,哪些为输入。

2.在操作过程中,主器件写入命令根据需要改变输出引脚或读取输入引脚的状态。在许多情况下,我们可对输入引脚的变化进行配置,以便驱动中断线来引起总线主控的注意。

端口扩展器的引脚就像处理器(总线主控器)的卫星引脚,扩展了处理器的功能,诸如能与前置面板(开关和LED)互动;能启用/禁用系统中的其他设备(比如以特定顺序打开或关闭电源)等。在其他情况下,端口扩展器还能提供更多安全特性,如持续监控连接至机箱外的开关并在开关打开时发出警报(这对来说是一种很受欢迎的功能)等。您能在需要的时候增加引脚。更让人满意的是,我们可以开始设计时在电路板上预留器件以备I2C总线使用,要是不需要的话,我们就不用安装该器件。

端口扩展器特性与选项端口扩展器的概念很简单,但各个厂商所提供的选项与特性往往比基本的引脚要复杂得多。扩展所需的I/O引脚数量是一个变量。既然I2C总线上的每个器件都有唯一的地址(七位,第八位表示读取或写入),假设单个器件地址越多,您就能在总线上放置更多器件,以备后用。不过这样做的代价是,每个地址线都要占用一个潜在的I/O引脚。

I2C端口扩展器厂商(赛普拉斯、美信、微芯和菲利浦)所提供的产品系列非常丰富,单个器件中的I/O引脚数从8个到60个不等。就地址线而言,大多数厂商的器件至少有一到两条地址线,但有的厂商推出了可提供多达7个地址位的解决方案,使暂时不用的地址线用作I/O。I/O引脚的驱动模式选择根据器件的不同而不同。高阻抗输入提供的选择包括在输入上提供一个内部4.7kQ的上拉或下拉电阻器。对于输出,我们则可用强大的10mA源极/25mA源极或内部上拉和下拉电阻器来配合所有器件的开漏/开路集电极选项命令。要认真阅读Ic产品说明书,了解器件提供的各种选项。特别是可能需要直接驱动LED时(这时需要较强的驱动电流),或需直接连接至开关接点时(这时需要上拉或下拉电阻器)更加马虎不得。

脉宽调制器(PWM)是另一个便于驱动LED的器件。基础型(成本最低的)端口扩展器不具备PWM,不过几乎所有厂商均推出了一两款能够提供PWM调制器的端口扩展器,单个端口扩展器最多能支持16个PWM调制器。PWM的优势在于,高频PWM调制器能够驱动LED,这时占空比可设置LED的光强度(占空比越高,LED的打开时间越长,亮度也越强);低频PWM(1/2Hz至4Hz)可以使LED闪烁。如果配置选项支持PWM且振荡器的精确度足够高的话,那么PWM还能为其他器件提供计时信号。

有的器件提供可进行串行寻址的EEPROM。通常,该特性取代了在系统额外增加相关功能或器件的要求,从而有助于电路板识别或其他配置信息。存储器的大小通常很难满足数据记录的要求,不过总算是免费提供的一项功能,尽管并不是什么了不起的重要功能,就好像是面包车第三排座位上增加了杯子固定座。不过,大多数人还是希望免费得到更多功能的。

需要考虑的另一重要因素就是器件如何配置。对大多数器件和厂商而言,端口扩展器的配置(包括端口方向、输出状态、PWM)是多变的,每次断电并再次加电后,必须对器件进行重新设置,也就是说,总线主控制器必须再次发送配置数据。新型器件可在端口扩展器的非易失存储器中存储该配置信息,并在加电时自动恢复。此外还提供一种辅助特性,即能将与当前状态不同但又不影响当前状态的加电配置状态写入器件中。这样,我们就能定义一种“故障保护”状态。如果断电,那么器件就能进入该状态,且在总线主控器/处理器更新器件之前,器件一直保持这种状态。

端口扩展器设计优势主要通过下列三种方法使用端口扩展器,从而实现最大设计优势。

1.为早期原型支持和测试/调试支持在设计中增加FC端口扩展器,并计划在最终产品中取消该器件;

2.在没有明确定义需求的情况下在设计中添加I2C端口扩展器,并确保随时能取消该器件;

3.尽可能用I2C端口扩展器来减少处理器的引脚需求。

在项目早期阶段,用于监控系统中不同器件的应用软件是不够用的,甚至根本没有。提供外部总线连接的|2C端口扩展器可替代处理器和软件来驱动逻辑线或监控逻辑线的状态。电路板上有了这种简便易用的器件以及与PC相连的低成本I2C主控器,我们就能在设计的初期阶段进行各种硬件调试和验证工作。此外,电路板上的端口扩展器还可用作硬件的测试驱动器,在采用与PC相连的I2C主控器通过端口扩展器从外部感测故障状态的同时,还能够使系统运行于正常状态下。在上述情况下,只要系统完全成型,端口 扩展器则完成了它的作用,我们就能从设计中撤销该器件。我们开始就举例讨论了这样一个问题:完成某一项目时才发现结果所选的处理器引脚不够用。我们不应该在问题出现之后再添加端口扩展器并对电路板进行重新布局,而应事先做好规划,从一开始就在电路板上预留一小块空间以便放置具备I2C总线接口的端口扩展器。端口扩展器只占用1平方厘米的板级空间,除非是最小型的系统,否则所有系统在设计开始时都会留出这么一块空间。将器件连接至I2C如果最终产品中包括I2C总线器件,那么在接口处放置零欧姆电阻会非常有用――通过安装不同电阻器组合,可以实现地址设置功能。此外,对以后可以跨接线连接(jumper-wired-in)的I/O引脚,要提供接口。如果项目根本不需要端口扩展器,那么就将其以及电阻器的成本从材料清单中减去,不过此举所实现的只不过是缩减了PCB上的一点点板级空间。有人买保险结果却活到一百岁,但我们并不能说他傻。

最后,应熟悉端口扩展器(或类似连接至I2C的从器件)的功能,只要可能,就在系统中安装端口扩展器。我们不要傻乎乎地把系统变成各种小器件的大杂烩,而应合理有序地将设计项目加以划分,每部分包括一些小的器件,彼此不耦合或很少耦合。刚开始,我们可能还体会不到这样做的真正优势,不过随着设计项目的增多,我们能逐渐甄别并总结出成功设计的组件,将它们在新设计中加以整合利用。凭借众多厂商提供的多种特定功能,我们能够大幅减少设计中烦琐的引脚处理问题,给功能强大的高成本主处理器减轻负担,提升系统核心价值。端口扩展器不是嵌入式系统中的新器件,正如引脚数不够也不是什么新问题一样。与风靡一时的各类器件一样,端口扩展器领域的创新每年层出不穷。端口扩展器的多样化特性(I/0引脚数量、PWM、串行EEPROM、寻址选择、非易失性配置等)和通用性,使其成为我们设计中一项重要的工具。不同厂商之间的竞争提高了产品性能,同时也扩展了产品功能,因此,对于采用端口扩展器的设计人员来说,即便是需要很多引脚支持的新特性突然出现,为确保设计成功也无需花大量的资金。