搜索
bottom↓
回复: 58

硬件IIC 和软件IIC

  [复制链接]

出0入0汤圆

发表于 2014-7-31 23:45:32 | 显示全部楼层 |阅读模式
求大神指教下,硬件IIC和软件IIC的优缺点?硬件IIC有何资源可以参考?目前想用PIC的芯片。

出0入20汤圆

发表于 2014-8-1 21:12:07 | 显示全部楼层
PIC的片子,建议用软IIC,灵活一些。

出0入0汤圆

发表于 2014-8-5 16:26:10 | 显示全部楼层
如果使用PIC的单片机好像官网上应该会有例程的,楼主可以找找

出0入8汤圆

发表于 2014-8-5 16:31:10 | 显示全部楼层
软I2C是用CODE拖拉IO模拟的,需要占用CPU。硬件的就是配置寄存器,硬件产生I2C读写时序。

出0入0汤圆

 楼主| 发表于 2014-8-6 07:17:41 | 显示全部楼层
mon51 发表于 2014-8-1 21:12
PIC的片子,建议用软IIC,灵活一些。

PIC 的硬件IIC看论坛上好像评价不是很好! 想用软件IIC,但是怕精准度不高!

出0入0汤圆

 楼主| 发表于 2014-8-6 07:18:16 | 显示全部楼层
uindex 发表于 2014-8-5 16:31
软I2C是用CODE拖拉IO模拟的,需要占用CPU。硬件的就是配置寄存器,硬件产生I2C读写时序。 ...

理解!!

出0入0汤圆

 楼主| 发表于 2014-8-6 07:19:38 | 显示全部楼层
Lu.Shi 发表于 2014-8-5 16:26
如果使用PIC的单片机好像官网上应该会有例程的,楼主可以找找

恩恩 好的谢谢!

出0入0汤圆

发表于 2014-8-6 07:20:19 来自手机 | 显示全部楼层
az8898l 发表于 2014-8-6 07:17
PIC 的硬件IIC看论坛上好像评价不是很好! 想用软件IIC,但是怕精准度不高! ...

软件模拟没问题的,就是耗点cpu

出0入0汤圆

 楼主| 发表于 2014-8-6 07:21:43 | 显示全部楼层
zgxcom123 发表于 2014-8-6 07:20
软件模拟没问题的,就是耗点cpu

我试试效果!!谢谢!

出0入20汤圆

发表于 2014-8-6 08:25:04 | 显示全部楼层
az8898l 发表于 2014-8-6 07:17
PIC 的硬件IIC看论坛上好像评价不是很好! 想用软件IIC,但是怕精准度不高! ...

IIC 没有什么精度问题,只是占用一点MCU的时间。

出0入0汤圆

发表于 2014-8-6 08:30:48 | 显示全部楼层
软件模拟IIC移植起来比硬件IIC更方便

出0入0汤圆

发表于 2014-8-6 13:43:17 | 显示全部楼层
看速率,看芯片,芯片定时器精确度差的 就用硬件的iic 或者低速率通信,保守一点9K6一下。

出0入42汤圆

发表于 2014-8-6 19:44:15 | 显示全部楼层
我的习惯是能有硬件的就用硬件.   SPI .IIC 等都是用内部硬件模块.

出0入0汤圆

发表于 2014-8-6 21:18:51 | 显示全部楼层
wangjiati 发表于 2014-8-6 19:44
我的习惯是能有硬件的就用硬件.   SPI .IIC 等都是用内部硬件模块.

支持。!!

出0入0汤圆

发表于 2014-8-9 10:06:04 | 显示全部楼层
如要高速I2C 主/从, 用硬I2C。。
如是低速, 软或硬I2C都可以。。

出0入0汤圆

发表于 2014-8-9 10:22:55 来自手机 | 显示全部楼层
硬件可能有点复杂,比Spiuart啥的麻烦一些,一个小问题搞好久搞不明白。如果时间不多,先用软件搞出来。硬件有时间慢慢研究。

出0入0汤圆

发表于 2014-8-9 19:29:22 | 显示全部楼层
I2C不太建议硬件I2C

出0入0汤圆

发表于 2014-9-11 13:01:36 | 显示全部楼层
设计的时候把口预留中硬件的口上,到时硬件还是软件就可以自由切换和选择了

出0入0汤圆

发表于 2014-9-11 15:30:20 | 显示全部楼层
24H系列的硬件IIC驱动能力不够强,改用软件IIC了

出0入0汤圆

发表于 2014-9-11 15:40:09 | 显示全部楼层
一直用软件IIC,都懒的弄硬件的了

出0入0汤圆

发表于 2014-9-11 16:35:53 | 显示全部楼层
其实有硬件I2C的话,尽量用硬件的,用中断,可降低单片机处理时间占用。

出0入0汤圆

发表于 2014-9-11 16:53:51 | 显示全部楼层
如果有可能,还在写一个硬件IIC策略吧,在不同的平台移植也不会很难。软件IIC太浪费资源了。

出0入0汤圆

发表于 2014-9-11 16:59:49 | 显示全部楼层
有很多工程师有懒惰的嫌疑。

用硬件IIC。

出0入0汤圆

发表于 2014-9-11 17:12:10 | 显示全部楼层
i2c 软件很难做得很完善吧?

出0入0汤圆

发表于 2014-9-11 17:27:05 | 显示全部楼层
IIC单独用硬件  肯定是不占用CPU资源 会好点

出0入0汤圆

发表于 2014-9-12 08:53:49 | 显示全部楼层
硬件I2C在驱动完美的前提下推荐使用。软件I2C消耗CPU资源,速度也上不去,在复杂应用中极大降低系统效率。

出0入0汤圆

发表于 2014-9-12 09:02:33 | 显示全部楼层
我也一般是接在硬件IIC上,软硬件到时候自由选。程序不复杂一般我都是移植软件,硬件麻烦

出0入0汤圆

发表于 2014-9-12 09:05:08 来自手机 | 显示全部楼层
速度没有特别要求,一般都用软

出0入0汤圆

发表于 2014-9-12 09:10:39 | 显示全部楼层
LZ好人丫丫丫丫丫丫

出0入0汤圆

发表于 2014-9-12 13:03:49 | 显示全部楼层
灵活性来讲,用软IIC

出0入0汤圆

发表于 2014-9-12 13:08:32 | 显示全部楼层
楼主,这个要看应用场合。
要求高的话,建议用硬件的I2C。

出0入0汤圆

发表于 2014-9-12 13:09:56 | 显示全部楼层
看需求, 能用硬件还是用硬件吧

出0入0汤圆

发表于 2014-9-12 13:30:56 来自手机 | 显示全部楼层
如果是开机读一次的,软IIC方便,可以使用现成的代码,略做移植。如果是运行中高频使用IIC,就用硬件IIC,让CPU运行快点。

出0入0汤圆

发表于 2014-9-12 14:20:38 | 显示全部楼层
曾经PIC4F的I2C折腾了一个多月都没搞定,后来再也不用PIC的I2C了

出0入0汤圆

发表于 2014-9-12 14:42:07 | 显示全部楼层
硬件IIC吧,我建议
这个东东,硬件技术已经很成熟了

出0入0汤圆

发表于 2014-9-12 15:12:34 | 显示全部楼层
能用硬件还是硬件的吧,软件的就是移植起来方便,练功,还是硬件比较好,不占系统资源

出0入0汤圆

发表于 2014-9-12 16:41:32 | 显示全部楼层
同意楼上的,硬件不占资源

出0入0汤圆

发表于 2014-9-12 17:38:06 | 显示全部楼层
软件IIC 会占用点CUP,有时误差也会累积起来,到时还要处理的

出0入0汤圆

发表于 2014-9-13 09:23:48 | 显示全部楼层
其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO相关寄存器,移植简单;
缺点:占用CPU

硬件总线的优点:不占用CPU,配置完寄存器后,写数据缓存,然后置位发送位,总线就自动开工,CPU就可以干别的了;
缺点:需要配置相关寄存器,可移植性差,除了一些用户量大的MCU,小众MCU基本上找不到示例程序,得自己参照PDF写驱动。

出0入0汤圆

发表于 2014-9-13 09:30:15 | 显示全部楼层
穷折腾 发表于 2014-9-13 09:23
其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO ...

总结的好!

出0入0汤圆

发表于 2014-9-14 00:46:50 | 显示全部楼层
建议用软件IIC方便以后移植

出10入10汤圆

发表于 2014-9-14 09:06:28 | 显示全部楼层
有硬件用硬件,没有的就用模拟的。

出0入0汤圆

发表于 2014-9-14 10:02:33 | 显示全部楼层
配寄存器控制的开发方便快捷,自己刻波形的能兼容一些奇奇怪怪的外设

出0入0汤圆

发表于 2014-9-14 10:36:18 | 显示全部楼层
软硬都用吧

出0入93汤圆

发表于 2014-9-14 11:54:54 | 显示全部楼层
穷折腾 发表于 2014-9-13 09:23
其实不光是I2C,其它总线用软件和硬件实现的区别都差不多,
软件模拟总线的优点:网上示例程序多,只涉及IO ...

其实,IIC和其他总线(比如UART、SPI、IIS等)真的区别好大的,不能混为一谈。
作为从机,IIC软件模拟真的不是只涉及IO相关寄存器,移植也不简单哦。要模拟IIC从机,估计难度不亚于USB从机,主要是时序跟不上。事实上,软USB的方案都满天飞了,IIC从机的实现少之又少。
IIC主机的仲裁机制(多主模式),有几个软件模拟实现过?
IIC软件实现的只不过是阉割版的阉割版,还真想跟硬件的一较短长,真是贻笑大方。

出0入0汤圆

发表于 2014-9-14 11:59:13 | 显示全部楼层
基本上用软件,硬件的太容易出问题了

出0入0汤圆

发表于 2014-9-14 14:54:08 | 显示全部楼层
takashiki 发表于 2014-9-14 11:54
其实,IIC和其他总线(比如UART、SPI、IIS等)真的区别好大的,不能混为一谈。
作为从机,IIC软件模拟真 ...

yes,受教了,你说得很详细。

出0入0汤圆

发表于 2014-9-14 15:23:17 | 显示全部楼层
空放着能用的硬件I2C控制器不用,自己用IO口浪费CPU处理能力去模拟I2C是为哪般呢?

模拟I2C移植容易是借口吗?为什么不提模拟I2C占用了太多的系统资源?模拟I2C用的延时都是硬延时吧?用for循环在空转,啥也不做,多浪费啊。

出0入0汤圆

发表于 2014-9-26 20:32:02 来自手机 | 显示全部楼层
wangjiati 发表于 2014-8-6 19:44
我的习惯是能有硬件的就用硬件.   SPI .IIC 等都是用内部硬件模块.

同意。                  

出0入0汤圆

发表于 2014-9-26 23:34:44 | 显示全部楼层
硬件IIC用不好会把整条总线占用挂掉。但是比较节省CPU时间。如果传输量不大,可以用软件的。

出0入0汤圆

发表于 2014-9-27 13:32:57 | 显示全部楼层
有硬件部分当然比完全软件模拟好了。

出0入0汤圆

发表于 2014-9-27 13:34:53 | 显示全部楼层
软件I2c通用啊,不管什么mcu都一样,就gpio模拟。硬件的就不一样了,比如stm的,真难用

出0入12汤圆

发表于 2014-9-27 13:42:41 | 显示全部楼层
通用不过有时序的问题,然后就是效率比较低。

出0入0汤圆

发表于 2014-9-27 20:17:09 | 显示全部楼层
有硬件尽量用硬件

出0入0汤圆

发表于 2014-9-29 09:11:33 | 显示全部楼层
wgxold 发表于 2014-9-12 08:53
硬件I2C在驱动完美的前提下推荐使用。软件I2C消耗CPU资源,速度也上不去,在复杂应用中极大降低系统效率。 ...

有道理 !

出0入0汤圆

发表于 2014-9-29 09:16:40 | 显示全部楼层
个人觉得软的用起来舒服

出0入0汤圆

发表于 2014-9-29 09:40:10 | 显示全部楼层
good,学习了~~~

出0入8汤圆

发表于 2014-9-29 09:50:55 | 显示全部楼层
硬件确实没有软件模拟来的顺手~

出0入0汤圆

发表于 2014-9-29 15:46:47 | 显示全部楼层
一般都是用的软的比较多吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 13:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表