完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
随着微控制器的价格越来越低,功能越来越强大,电气设计人员发现在单板和多板系统中都使用多个小型控制器是一种更加经济高效的方法。这种辅助处理器能够减轻主处理器在耗时任务上面的处理开销,例如扫描键盘、显示控制器和电机控制。这些控制器也可以配置为各种各样的专用外设。
最近,我接受了一项任务:开发一种能够方便地适用于多种应用的接口(软/硬件),且要符合嵌入式处理器中常用的行业标准。在分析了一些典型应用之后,我们列出了一些针对该硬件接口的设计需求:常用于32位和8位处理器;能够得到常用外设器件的支持;外设接口代码量低于0.5kB;引脚数量少;数据带宽可达10kBps;RAM用量少;一条总线上支持多种外设;方便使用API;不需要外部接口驱动硬件。 由于要求引脚数量少,所以必须采用串行接口。目前处理器中常见的串行接口包括SPI、I2C、USB和RS-232。通过从不同方面权衡比较这些接口,我最终选择了I2C,因为它接口简单,灵活性好,得到了大多数低成本控制器的支持。在不需要很高传输速度的情况下,较少的引脚数和流量控制功能还使得I2C接口相比SPI接口具有更大的优势。 I2C的工作原理 I2C是一种双线双向接口,包括一个时钟信号和一个数据信号(SCL和SDA)。在不增加任何其他信号的情况下,一条I2C总线就可以支持多达12个设备。I2C接口规范包括三种工作速度:100kbps、400kbps和3.4Mbps。大多数常见的控制器只支持100-和400kbps两种模式。I2C总线支持一个主设备多个从设备,或者多个主设备的配置结构。 I2C一个非常重要的特性就是它支持流量控制。如果某个从设备无法保持连续的字节传输,它可以将总线挂起,直到能够跟上主设备的传输速度。这对于包含最小规模的I2C硬件并且必须在固件上支持部分传输协议的从设备来说是非常有用的。I2C总线规范支持7b和10b两种寻址协议。我发现7b寻址模式在大部分应用中的效率更高。 在开始编写代码之前,我们需要很好地了解I2C总线的工作原理。任何情况下I2C总线至少要包含一个主设备,至少要挂有一个或多个从设备。主设备总是由主到从发起数据传输操作。无论有多少个外设挂接在总线上,I2C接口只有两个信号。 两个信号都是集电极开路的,通过大小为2.7k左右的上拉电阻接Vcc电源。SDA信号是双向的,可以由主设备或从设备驱动。SCL信号是由主设备驱动的,但是在一个数据字节的末尾从设备必须保持SCL信号为低,以延迟总线直到从设备开始处理数据。主设备在数据字节的最后一位传输完之后释放SCL信号,然后检查SCL信号是否变高。如果SCL没有变高,那么主设备认为从设备正在请求主设备延迟,直到其开始处理数据。 当通过I2C总线发送数据时,只有当SCL为低电平时才能进行数据变换。当SCL信号为高时,任何方向的数据都应该是稳定的(如图1所示)。 当总线空闲时,主设备和从设备都不下拉SDA和SCL信号。在发起一次数据传输时,主设备驱动SDA信号从高电平变成低电平,同时SCL信号为高。一般地,当SCL信号为高电平时,SDA信号的状态保持不变,但启动或停止条件下除外。当SCL信号为高并且SDA信号从低变高时,是传输停止的情况(如图2所示)。 I2C总线以8b为单位传输数据。每传输一个字节时,必须得到数据接收方的确认。所有的数据都是从MSB(最高有效位)开始传输的。 |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2571 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2366 浏览 5 评论
3214 浏览 3 评论
2840 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2793 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
671浏览 1评论
907浏览 0评论
1029浏览 0评论
673浏览 0评论
501浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 10:56 , Processed in 1.188517 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号