IIC总线的应答信号怎样理解 IIC总线的应答信号问题

IIc\u603b\u7ebf\u4e2d\uff0c\u5e94\u7b54\u51fd\u6570\u4fe1\u53f7\u600e\u6837\u5199\uff1f\uff1f\uff1f

\u3000\u30001\u3001\u9996\u5148IIC\u901a\u4fe1\u8981\u5206\u6e05\u4e3b\u673a\u4e0e\u4ece\u673a\u7684\u5173\u7cfb\uff0c\u5728\u4e3b\u673a\u5bf9\u4ece\u673a\u8fdb\u884c\u5199\u64cd\u4f5c\u65f6\uff0c\u4e00\u822c\u662f\u5728\u4f20\u9001\u5b8c\u4e00\u4e2a\u6570\u636e\u4e4b\u540e\u5355\u7247\u673a\u5c31\u8fdb\u5165\u68c0\u6d4b\u5e94\u7b54\u4fe1\u53f7\u72b6\u6001\uff1a\u5148\u5c06\u4e24\u4e2a\u811a\u7f6e\u4f4d
SDA=1\uff1bSCL=1\uff1b\u7136\u540e\u5728\u4e00\u5b9a\u65f6\u95f4\u5185\u4e0d\u65ad\u68c0\u6d4bSDA\u811a\u7684\u7535\u5e73\u72b6\u6001\uff0c\u6bd4\u5982\u8bf4\u4f60\u5f04\u4e2a\u5faa\u73affor(i=255;i>0;i--){..;
if(...)break;...}\u8fdb\u884c\u4e0d\u65ad\u5224\u65ad\uff0c\u5f53SDA\u7684\u7535\u5e73\u4e3a\u4f4e\u65f6\u5c31\u8df3\u51fa\u5faa\u73af\uff0c\u8bf4\u660e\u6b64\u65f6\u4ece\u673a\u5df2\u7ecfACK\uff0c\u5c31\u53ef\u8bf4\u660e\u662fI2C\u5668\u4ef6\u62c9\u4f4e\uff1b\u5982\u679c\u4e3a\u9ad8\u65f6\uff0c\u5219
\u4e00\u76f4\u5224\u65ad\u5b8c\u6574\u4e2a\u5faa\u73af\uff0c\u5230\u6700\u540e\u8fd8\u4e3a\u9ad8\u65f6\uff0c\u5c31\u8bf4\u660e\u6ca1\u6709\u5e94\u7b54\u3002
\u3000\u30002\u3001\u5199\u5e94\u7b54\u548c\u8bfb\u5e94\u7b54\u80af\u5b9a\u6709\u6240\u533a\u522b\u7684\u3002\u5199\u5e94\u7b54\u662f\u5728\u4f60\u8bfb\u4ece\u673a\u6570\u636e\u671f\u95f4\uff0c\u5f53\u4f60\u63a5\u6536\u5230\u4e00\u4e2a\u6570\u636e\u65f6\uff0c
\u53ef\u4ee5\u5e94\u7b54\u7684(\u60f3\u7ee7\u7eed\u901a\u4fe1\u5c31\u5e94\u7b54)\uff0c\u5c31\u5c06SDA\u590d\u4f4d(\u62c9\u4f4e),\u4e0d\u60f3\u5e94\u7b54(\u60f3\u7ed3\u675f\u901a\u4fe1\u65f6)\u5c31\u7f6e\u4f4d(SDA=1)\u3002\u8bfb\u5e94\u7b54\u5219\u5728\u4e3b\u673a\u5199\u6570\u636e\u7ed9\u4ece\u673a\u671f\u95f4\uff0c\u6bcf\u5f53\u4ece\u673a\u63a5
\u6536\u5230\u4e00\u4e2a\u6570\u636e\u5c31\u4f1a\u5e94\u7b54\u4e00\u4e0b(\u5c06\u6570\u636eSDA\u7ebf\u62c9\u4f4e)\uff0c\u4e3b\u673a\u5c06\u4e0d\u65ad\u68c0\u6d4bSDA\u7ebf\u7684\u7535\u5e73\uff0c\u4e3b\u673a\u5c31\u662f\u51edSDA\u7684\u7535\u5e73\u72b6\u6001\u624d\u77e5\u9053\u4ece\u673a\u662f\u5426\u5df2\u7ecf\u6b63\u786e\u5730\u63a5\u6536\u4e86\u4e3b\u673a\u53d1\u9001\u7684
\u6570\u636e\u3002

1\u3001\u9996\u5148IIC\u901a\u4fe1\u8981\u5206\u6e05\u4e3b\u673a\u4e0e\u4ece\u673a\u7684\u5173\u7cfb\uff0c\u5728\u4e3b\u673a\u5bf9\u4ece\u673a\u8fdb\u884c\u5199\u64cd\u4f5c\u65f6\uff0c\u4e00\u822c\u662f\u5728\u4f20\u9001\u5b8c\u4e00\u4e2a\u6570\u636e\u4e4b\u540e\u5355\u7247\u673a\u5c31\u8fdb\u5165\u68c0\u6d4b\u5e94\u7b54\u4fe1\u53f7\u72b6\u6001\uff1a\u5148\u5c06\u4e24\u4e2a\u811a\u7f6e\u4f4dSDA=1\uff1bSCL=1\uff1b\u7136\u540e\u5728\u4e00\u5b9a\u65f6\u95f4\u5185\u4e0d\u65ad\u68c0\u6d4bSDA\u811a\u7684\u7535\u5e73\u72b6\u6001\uff0c\u6bd4\u5982\u8bf4\u4f60\u5f04\u4e2a\u5faa\u73affor(i=255;i>0;i--){..;if(...)break;...}\u8fdb\u884c\u4e0d\u65ad\u5224\u65ad\uff0c\u5f53SDA\u7684\u7535\u5e73\u4e3a\u4f4e\u65f6\u5c31\u8df3\u51fa\u5faa\u73af\uff0c\u8bf4\u660e\u6b64\u65f6\u4ece\u673a\u5df2\u7ecfACK\uff0c\u5c31\u53ef\u8bf4\u660e\u662fI2C\u5668\u4ef6\u62c9\u4f4e\uff1b\u5982\u679c\u4e3a\u9ad8\u65f6\uff0c\u5219\u4e00\u76f4\u5224\u65ad\u5b8c\u6574\u4e2a\u5faa\u73af\uff0c\u5230\u6700\u540e\u8fd8\u4e3a\u9ad8\u65f6\uff0c\u5c31\u8bf4\u660e\u6ca1\u6709\u5e94\u7b54\u3002
2\u3001\u5199\u5e94\u7b54\u548c\u8bfb\u5e94\u7b54\u80af\u5b9a\u6709\u6240\u533a\u522b\u7684\u3002\u5199\u5e94\u7b54\u662f\u5728\u4f60\u8bfb\u4ece\u673a\u6570\u636e\u671f\u95f4\uff0c\u5f53\u4f60\u63a5\u6536\u5230\u4e00\u4e2a\u6570\u636e\u65f6\uff0c\u53ef\u4ee5\u5e94\u7b54\u7684(\u60f3\u7ee7\u7eed\u901a\u4fe1\u5c31\u5e94\u7b54)\uff0c\u5c31\u5c06SDA\u590d\u4f4d(\u62c9\u4f4e),\u4e0d\u60f3\u5e94\u7b54(\u60f3\u7ed3\u675f\u901a\u4fe1\u65f6)\u5c31\u7f6e\u4f4d(SDA=1)\u3002\u8bfb\u5e94\u7b54\u5219\u5728\u4e3b\u673a\u5199\u6570\u636e\u7ed9\u4ece\u673a\u671f\u95f4\uff0c\u6bcf\u5f53\u4ece\u673a\u63a5\u6536\u5230\u4e00\u4e2a\u6570\u636e\u5c31\u4f1a\u5e94\u7b54\u4e00\u4e0b(\u5c06\u6570\u636eSDA\u7ebf\u62c9\u4f4e)\uff0c\u4e3b\u673a\u5c06\u4e0d\u65ad\u68c0\u6d4bSDA\u7ebf\u7684\u7535\u5e73\uff0c\u4e3b\u673a\u5c31\u662f\u51edSDA\u7684\u7535\u5e73\u72b6\u6001\u624d\u77e5\u9053\u4ece\u673a\u662f\u5426\u5df2\u7ecf\u6b63\u786e\u5730\u63a5\u6536\u4e86\u4e3b\u673a\u53d1\u9001\u7684\u6570\u636e\u3002

  1、首先IIC通信要分清主机与从机的关系,在主机对从机进行写操作时,一般是在传送完一个数据之后单片机就进入检测应答信号状态:先将两个脚置位
SDA=1;SCL=1;然后在一定时间内不断检测SDA脚的电平状态,比如说你弄个循环for(i=255;i>0;i--){..;
if(...)break;...}进行不断判断,当SDA的电平为低时就跳出循环,说明此时从机已经ACK,就可说明是I2C器件拉低;如果为高时,则
一直判断完整个循环,到最后还为高时,就说明没有应答。
  2、写应答和读应答肯定有所区别的。写应答是在你读从机数据期间,当你接收到一个数据时,
可以应答的(想继续通信就应答),就将SDA复位(拉低),不想应答(想结束通信时)就置位(SDA=1)。读应答则在主机写数据给从机期间,每当从机接
收到一个数据就会应答一下(将数据SDA线拉低),主机将不断检测SDA线的电平,主机就是凭SDA的电平状态才知道从机是否已经正确地接收了主机发送的
数据。

这个是为了后续通信能继续下去的一个机制。
凡是接收数据或命令方,都要给一个应答位,发送方只有收到应答位后才继续发送。只有一个特殊情况不用应答位,就是主机(给时钟信号的一方)作为接收方时,在收到最后一个字节信息时可以不用应答。
由于IIC的数据线一定有一个上拉电阻,如果通信中能收到应答位,一定是接收方把数据线强制拉低,所以在开始学习IIC通信时,能收到方的应答位,是成功的第一步。

  • 51 鍗曠墖鏈 I2C 閫氫俊鍗忚涓 搴旂瓟淇″彿涓彁鍒,绗9涓富鏈鸿緭楂樼數骞,浠庢満杈...
    绛旓細绛旀鏄細鍥犱负璇寸殑涓嶆槸涓鏉$嚎涓婄殑楂樹綆鐢靛钩銆備綘鑻ユ兂涓嶉搴旂瓟淇″彿锛屼綘鍙互鎬濊冧竴涓嬭捣濮嬩俊鍙峰拰鍋滄淇″彿锛岄兘鏄皢SCL鎷夐珮锛岀劧鍚庡湪SDA涓婂彉鍖栫數鍘嬫潵鍙戝嚭涓嶅悓鍛戒护锛IIC閫氫俊鍗忚鏄庣‘瑙勫畾锛屽綋SCL涓洪珮鏃讹紝鏁版嵁瑕佹眰缁濆绋冲畾锛屽彧鏈夊湪SCL涓轰綆鏃舵暟鎹墠鍙互鍙樺寲锛屼篃灏辨槸鎵嶈兘寮濮嬩紶閫掓暟鎹紝涓轰粈涔堣姹係CL涓洪珮鏃舵暟鎹ǔ瀹氾紝灏...
  • IIC閫氫俊鍗忚
    绛旓細    1. 涓绘帶妫娴嬪埌鎬荤嚎澶勪簬绌洪棽鏃讹紝棣栧厛鍙戦佷竴涓猄TART淇″彿鏉ユ帶鍒舵荤嚎锛屾鏃舵荤嚎杩涘叆蹇欑姸鎬侊紱    2. 涓绘帶鍙戦佷竴涓澶囧湴鍧瀛楄妭锛屾荤嚎涓婃墍鏈夌殑浠庤澶囬兘浼氭敹鍒帮紱    3. 褰撹鎺у櫒浠舵娴嬪埌涓绘帶鍙戦佺殑鍦板潃涓庤嚜宸辩殑鍦板潃鐩稿悓鏃跺彂閫佷竴涓搴旂瓟淇″彿(ACK)锛   ...
  • AVR鍗曠墖鏈 IIC閫氫俊閭d竴閮ㄥ垎鐨勫簲绛斾俊鍙闂
    绛旓細瑕佸垎娓呭簲绛旂殑姒傚康锛屼富璁惧鍜屼粠璁惧涓ゆ柟閮芥湁搴旂瓟锛汿WEA缃1鍙槸浣胯兘AVR鑷繁鐨勫簲绛锛屼笉鏄鏂圭殑搴旂瓟锛涗竴鑸I2C璁惧锛堝24C02锛夊湪鏀跺埌8浣嶆暟鎹悗锛岄兘浼氳嚜鍔ㄥ簲绛旂殑銆傜數瀛愯璁$綉dzsj
  • 浠涔堟槸IIC鎬荤嚎?璋㈣阿
    绛旓細IIC涓茶鎬荤嚎涓鑸湁涓ゆ牴淇″彿绾匡紝涓鏍规槸鍙屽悜鐨勬暟鎹嚎SDA锛屽彟涓鏍规槸鏃堕挓绾縎CL銆傛墍鏈夋帴鍒I2C鎬荤嚎璁惧涓婄殑涓茶鏁版嵁SDA閮芥帴鍒鎬荤嚎鐨SDA涓婏紝鍚勮澶囩殑鏃堕挓绾縎CL鎺ュ埌鎬荤嚎鐨凷CL涓婏紝涓鑸琒DA銆丼CL閮戒細鎺ヤ笂鎷夌數闃诲疄鐜扮數骞崇殑杞崲浠ュ強鎻愰珮椹卞姩鑳藉姏銆IIC鎬荤嚎鍗忚鍖呮嫭锛氳捣濮嬩俊鍙枫佸仠姝俊鍙枫佹暟鎹綅銆搴旂瓟浣嶏紱涓鑸竴娆¢氫俊涓9...
  • IIC搴旂瓟淇″彿闂璇锋暀鍚勪綅
    绛旓細鍥炵瓟锛氳繖涓師鍥犳槸澶氭柟闈㈢殑,棣栧厛浣犻渶瑕佺‘瀹氫綘鐨勬椂搴忕鍚堣姹,鎷夐珮,鎷変綆鐨勭數骞宠剦瀹界鍚堣姱鐗囨墜鍐岀殑瑕佹眰銆傚鏋滅鍚,鑰屼笖鍙堝湪绗竴涓湴鍧鍙戣繃鍘婚兘娌℃湁ACK杩斿洖鐨勮瘽,灏卞緢鏈夊彲鑳芥槸浠庡湴鍧鐨勯棶棰,杩欎釜鍙兘鎬у緢澶 浠庡湴鍧闂,妫鏌ヤ竴涓 鑺墖澶栧洿鐢佃矾闂,濡俽eset閭i噷鐨勭數闃,鐢靛鏈夐棶棰 鑺墖鍧忎簡 鏈夊涓IIC鑺墖,...
  • IIC搴旂瓟淇″彿闂璇锋暀鍚勪綅
    绛旓細杩欎釜鍘熷洜鏄鏂归潰鐨勶紝棣栧厛浣犻渶瑕佺‘瀹氫綘鐨勬椂搴忕鍚堣姹傦紝鎷夐珮锛屾媺浣庣殑鐢靛钩鑴夊绗﹀悎鑺墖鎵嬪唽鐨勮姹傘傚鏋滅鍚堬紝鑰屼笖鍙堝湪绗竴涓湴鍧鍙戣繃鍘婚兘娌℃湁ACK杩斿洖鐨勮瘽锛屽氨寰堟湁鍙兘鏄粠鍦板潃鐨勯棶棰橈紝杩欎釜鍙兘鎬у緢澶 浠庡湴鍧闂锛屾鏌ヤ竴涓 鑺墖澶栧洿鐢佃矾闂锛屽reset閭i噷鐨勭數闃伙紝鐢靛鏈夐棶棰 鑺墖鍧忎簡 鏈夊涓IIC鑺墖锛屽瓨鍦...
  • IIC鎬荤嚎鍗忚鐨勯棶棰?
    绛旓細浠庤鏁版嵁鐨勮搴︽潵璇存病鏈夊尯鍒紱浣嗘槸鍙戜簡搴旂瓟鐨勮瘽锛屼粠鍣ㄤ欢浼氱户缁緭鍑烘暟鎹紝澶勪簬宸ヤ綔鐘舵侊紝鍙戦潪搴旂瓟鍒欎粠鍣ㄤ欢灏卞仠姝㈣緭鍑烘暟鎹紝澶勪簬standby鐘舵侊紝涓ょ鐘舵佺殑鑰楄兘涓嶄竴鏍风殑锛屽疄闄呭簲鐢ㄦ椂锛屽氨浼氬湪鍔熺巼涓婃湁宸埆銆
  • 51鍗曠墖鏈烘帶鍒禗A鑺墖
    绛旓細杩6琛岀▼搴忔槸鍗曠墖鏈哄悜IIC鎬荤嚎鍙戦佺殑ACK锛搴旂瓟淇″彿锛夈傚湪浠24C02璇诲彇鏁版嵁鏃讹紝鍗曠墖鏈烘槸鏁版嵁鎺ユ敹绔紝鍚24c02鍙戦丄CK搴旂瓟淇″彿锛屾槸琛ㄦ槑鍗曠墖鏈哄凡鎺ユ敹鍒8浣嶆暟鎹紝24C02鎺ユ敹鍒拌繖涓俊鍙凤紝鍦板潃灏变細鑷姩鍔1锛岀瓑寰呭崟鐗囨満璇诲彇涓嬩竴瀛楄妭鏁版嵁銆
  • 鍏充簬iic鎬荤嚎銆傜湅杩囧緢澶氳祫鏂,寰堝閮界浉浜掔煕鐩俱傚湪涓绘満璇诲彇鏁版嵁涔嬪墠,鏄惁...
    绛旓細鑰屽湪鍙戦佹暟鎹椂锛屼富鏈烘帶鍒鎬荤嚎锛屽湪scl=0鏃讹紝sda琚富鏈烘敼鍙橈紱scl=1鏃讹紝sda涓嶅彉锛屽苟琚粠鏈鸿鍙栥傦紙scl=0鏃讹紝涓绘満鏀瑰彉sda锛搴旂瓟鏃讹紝鐩稿綋浜庤鍙栦竴浣嶆暟鎹紝鍚屾牱鏄湪scl=1鏃讹紝鐢变粠鏈烘敼鍙榮da銆傝岃捣濮嬨佺粨鏉熸椂锛屾槸鐢 涓绘満 鎺у埗sda銆傚湪scl涓1鏃讹紝sda鐨勪换浣曟敼鍙橀兘灏嗚瑙嗕负璧峰銆佺粓姝淇″彿銆備釜浜鐞嗚В锛屽鏈...
  • 璇锋暀:銆IIC鍗忚銆備负浠涔圛IC_ERROR=1琛ㄧず鏃搴旂瓟,鐪嬩笉澶噦
    绛旓細浣犲幓鐪嬩竴涓IIC鐨鍗忚銆傚彂閫8涓湴鍧浣嶆垨鑰呮暟鎹綅鍚庯紝浼氱敱浠庢満杩斿洖涓涓淇″彿 鍦ㄥ崗璁腑鎴愪负ACK銆侫CK=0鏃讹紝琛ㄦ槑涓绘満鍜屼粠鏈洪氫俊姝e父锛孉CK=1鏃讹紝鍗砃ACK 琛ㄧず浠庢満鏃搴旂瓟銆傜‖浠惰繛绾块敊璇垨鑰呮椂搴忛敊璇紝涔熸湁鍙兘鏄湴鍧閿欒銆傜湅绀烘尝鍣ㄥ氨鑳芥槑鏄剧湅鍑烘潵锛屽湪2涓瓧鑺傛暟鎹箣闂磋繕闂撮殧浜1浣嶃傝繖灏辨槸ACK 鎴戜滑灏辨槸閫氳繃鍒ゆ柇...
  • 扩展阅读:iic总线协议详解 ... iic通信协议应答信号 ... 怎么区分有源和无源 ... iic是异步总线吗 ... io总线传送的三大信号 ... iic应答和非应答信号 ... iic总线上没有应答信号 ... iic时序图详解 ... iic总线是几线制 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网