微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于硬件仲裁和串行总线的多机通信

基于硬件仲裁和串行总线的多机通信

时间:12-11 来源:互联网 点击:


在软件方面,还需要对I2C芯片(如FM24C64,8 KB)的地址空间进行分配。可以根据需要给每一个主机分配一个连续的地址空间,空间大小可以不等,例如CPUA获得AddrA的地址空间。在AddrA中,再进行细分,例如CPUC与CPUA通信的地址为AddrAC。当CPUC需要传送数据给CPUA时,只需将数据写入AddrAC的地址中,而由CPUA在获得总线后读取AddrAC的数据,从而完成数据传送的过程。使用I2C芯片作为数据芯片,必须保证在每一个CPU没有获得总线的情况下,对应的SDA和SCL口线保持为高电平。
图l可用于主机数量小于或等于8个的情况。
当主机数量大于8个(如16个)时,可以利用2片74HCl48通过级联实现十六线一四线的优先编码,同时利用2片74HCl38通过级联实现四线一十六线译码。级联的方法请见参考文献[5]。必须注意的是,级联后,某个CPU的Ask和Reply必须是一一对应的。

4 总线预约
由于8个主机的请求线Ask0~Ask7存在不同的优先级,当系统对实时性能要求较高时,可以通过3个控制线实现总线预约功能。本文以MCS5l系列单片机CPUA为例说明。
方法一:将Status状态线经“非”门后接入CPUA外部中断INTO或INTl(外部中断设置为下降沿触发),当其他高优先级释放总线后,Status端出现下降沿,使CPUA进入中断,使得CPUA可及时获得总线。
方法二:将Reply0接至CPUA的外部中断INT0或INTl(外部中断设置为下降沿触发),当CPUA需要尽快获得总线时,将AskO置为低电平;当其他高优先级释放总线后,Reply0即由高电平变为低电平,CPUA进入中断,从而获得总线。


结语
利用74HCl48和74HCl38组成多主机系统的硬件仲裁逻辑,电路简单、可靠,CPU的处理时间极短,性能稳定。笔者已将该技术应用于实际的数据采集系统中,系统运行可靠。在串行芯片的选择上,铁电存储器(FM系列)存储速度快(I2C总线频率可达lMHz,SPI总线频率可达25MHz),写入数据没有延时,读写次数为100亿次,低功耗操作,容量大,可以由软件模拟实现I2C和SPI总线,适合各种类型的单片机,是十分理想的存储芯片。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top