日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]   在Mcs-51單片機(jī)已經(jīng)被廣泛使用的時(shí)候,還沒有I2c協(xié)議標(biāo)準(zhǔn)。但今天,I2c已經(jīng)作為IC之間的標(biāo)準(zhǔn)數(shù)據(jù)交換協(xié)議被廣泛采用。沒有I2c接口的Mcs-51單片機(jī)也常會涉及和標(biāo)準(zhǔn)I2c器件交換數(shù)據(jù),所以Mcs-51模擬I

  在Mcs-51單片機(jī)已經(jīng)被廣泛使用的時(shí)候,還沒有I2c協(xié)議標(biāo)準(zhǔn)。但今天,I2c已經(jīng)作為IC之間的標(biāo)準(zhǔn)數(shù)據(jù)交換協(xié)議被廣泛采用。沒有I2c接口的Mcs-51單片機(jī)也常會涉及和標(biāo)準(zhǔn)I2c器件交換數(shù)據(jù),所以Mcs-51模擬I2c接口的文章也常見諸報(bào)端。

  最近,筆者為了設(shè)計(jì)一個(gè)基于I2c時(shí)鐘的電子打鈴器的方案,先進(jìn)行了一次MCS-51模擬I2c接口操作的實(shí)戰(zhàn)編程。原以為憑著手頭的各種資料,可以輕松完成,沒想到頗費(fèi)了一番周折,所以特將自己獲得的經(jīng)驗(yàn)作個(gè)小結(jié)。

  1.FG器件的硬件結(jié)構(gòu)

  I2c總線由sDA和scL兩條信號線組成,其中SDA為數(shù)據(jù)線,SCL為時(shí)鐘信號線。I2c總線上可以掛接SRAM、E2PROM、ADC/DAC、RTc、I/O口、DTMF、時(shí)鐘芯片、溫度芯片等有標(biāo)準(zhǔn)I2c接口的芯片,形成一個(gè)完備的數(shù)字化處理系統(tǒng)。上電時(shí),sDA和SCL都由各自線上接的上拉電阻拉到高電平狀態(tài)。

  從上圖可以看出,每一個(gè)I2c器件都有sDA出、sDA入、scL出、SCL入四個(gè)信號端口。當(dāng)某一掛接在同一I2c總線的器件scL輸出為低時(shí),SCL總線就會被其拉為低。SDA總線情況也一樣。

  然而,sDA人和scL人信號端口在器件內(nèi)部又是可控制的。

  當(dāng)主機(jī)啟動I2C總線,并向I2c總線發(fā)送器件地址時(shí),各個(gè)器件都會接收sDA入和SCL入信號,但只有本器件地址與接收到的器件地址信息一致的那個(gè)I2c器件才會繼續(xù)接收后續(xù)的信息,其他器件則會關(guān)閉輸入端口直至下一次主機(jī)啟動I2C總線。

  2.I2C傳輸協(xié)議標(biāo)準(zhǔn)

  I2c總線是一條異步串行通訊總線,主機(jī)可以隨時(shí)啟動I2c總線,并發(fā)送器件地址與相應(yīng)的從器件建立通訊聯(lián)系。每一時(shí)刻,只能有主機(jī)和一個(gè)從器件占用I2C總線。。I2C傳輸協(xié)議允許總線上接入同一I2c總線,在多主機(jī)的I2C總線系統(tǒng)中,通過多主競爭的協(xié)調(diào)管理確定在某一時(shí)刻唯一的主機(jī),其他主機(jī)則被置于從器件位置等待主機(jī)發(fā)落。本文僅涉及MCS-5l單片機(jī)與I2c從器件的數(shù)據(jù)交換,所以只模擬單個(gè)主機(jī)操作I2c從器件的過程。

  (1)IIC器件的器件地址和內(nèi)部地址

  每一接入I2C總線的從器件都要有唯一的器件地址,器件地址是主機(jī)在啟動I2c總線后發(fā)送的第1個(gè)八位二進(jìn)制數(shù)據(jù)。這個(gè)八位二進(jìn)制數(shù)由三部分組成:四位固有的地址編碼(D7-D4),三位引腳地址編碼(D3-D1)和一位讀/寫選擇位(1/0,Do)。

  四位固有的地址編碼是I2c器件出廠前已固化在芯片內(nèi)的固定編碼,是不能改變的。比如E2PROM芯片24CXX(包括各公司生產(chǎn)的兼容芯片)的器件地址為1010,LED驅(qū)動器sAAl064的器件地址為0111,時(shí)鐘芯片PcF8563的器件地址為1010。三位引腳地址編碼可以根據(jù)器件芯片引腳A2、A1、AO接電源或接地(I/0),形成編碼來確定同一總線上從器件芯片個(gè)體。24CXX芯片上都有A2、A1、A0引腳,但由于部分芯片內(nèi)部占用了地址編碼資源,所以部分芯片的A2、A1、A0引腳并不全有用,而是空腳。因此,一條總線上可掛接的芯片數(shù)量也不一樣,24C02可以掛接8片,每一片24C02的引腳A2、A1、A0分別置位為000-111,則主機(jī)發(fā)送不同的器件地址就能分別訪問到不同的24C02芯片。24C16則可看成8片24C02為一體,主機(jī)發(fā)送不同的器件地址則是訪問24c16內(nèi)部的不同區(qū)塊。

  24C32以上的芯片由于其內(nèi)部地址編碼分兩字節(jié),突破了地址編碼資源11位(3位器件地址+8位內(nèi)部地址)的限制,因此總線容量也獲得了擴(kuò)充。

  器件芯片內(nèi)部都有一定量的數(shù)據(jù)存儲單元,這就要由內(nèi)部地址編碼(也稱子地址)來確定了。一般的I2c器件的內(nèi)部地址編碼為1個(gè)八位二進(jìn)制數(shù)據(jù)(A7~AO),可編址256字節(jié)。如果不夠就需要兩字節(jié)來表示:高字節(jié)(A15~A8)和低字節(jié)(A7-AO)。還不夠的話,還可以擴(kuò)充。可以看出I2C協(xié)議是有很強(qiáng)的生命力的。

  (2)內(nèi)置地址計(jì)數(shù)器

  為了方便對IIC器件內(nèi)部數(shù)據(jù)存儲單元的讀寫操作,24Cxx芯片內(nèi)部還內(nèi)置了一個(gè)地址計(jì)數(shù)器。在讀寫一個(gè)字節(jié)完成后,地址計(jì)數(shù)器自動加1。這樣在第一字節(jié)讀寫完成后,第二次進(jìn)行讀寫時(shí),地址計(jì)數(shù)器已經(jīng)指向下一個(gè)存儲單元。在讀取數(shù)據(jù)時(shí),先發(fā)送起始單元地址,然后可以連續(xù)讀取任意個(gè)字節(jié),直到地址計(jì)數(shù)器達(dá)到最大值翻轉(zhuǎn)到0,進(jìn)行下一輪計(jì)數(shù)。例如24C16(內(nèi)部地址編碼范圍000H~7FFH)先發(fā)送起始單元地址005H,然后連續(xù)讀取7FFH個(gè)字節(jié),則前7FAH個(gè)字節(jié)為005H~7FFH單元內(nèi)容,最后5個(gè)字節(jié)則是000H~004H單元內(nèi)容。

  但是,進(jìn)行寫入數(shù)據(jù)操作時(shí),則地址計(jì)數(shù)器僅限于低三(或四、五、六)位。以24C01為例,當(dāng)它計(jì)數(shù)到1000B時(shí),實(shí)際上并沒有發(fā)生進(jìn)位,而是又回到000B開始下一輪計(jì)數(shù)。所以,如果是單字節(jié)寫,可靠的方式是發(fā)送寫入數(shù)據(jù)前,都先發(fā)送欲寫入單元的地址編碼。如果是寫入連續(xù)的單元(也稱頁寫),則先發(fā)送起始單元地址,然后發(fā)送要寫入的n個(gè)字節(jié)。24COI/02/04/08/16/32/64/128/256每次可連續(xù)寫入字節(jié)數(shù)分別為8/16/16/16/16/32/32/64/64個(gè)。但這是起始單元地址為0時(shí)的連續(xù)個(gè)數(shù),如果起始單元地址不是0,則實(shí)際這些字節(jié)的存儲位置是不連續(xù)的。例如24C16(內(nèi)部地址編碼范圍000H~7FFH)先發(fā)送起始單元地址005H,然后連續(xù)寫入16個(gè)字節(jié),則前11個(gè)字節(jié)寫入了005H~OOFH單元,最后5個(gè)字節(jié)被寫入了000H~004H單元。如果連續(xù)寫入17個(gè)字節(jié),則005H單元所存的第1個(gè)字節(jié)內(nèi)容又被最后的第17個(gè)字節(jié)覆蓋,造成第1個(gè)字節(jié)內(nèi)容丟失。

  這是頁寫方式讓人較難理解的地方。

  (3)讀寫IIC器件的一般過程

  每一次讀寫I2C器件前,主機(jī)都要先啟動。I2C總線,如圖2所示。在時(shí)鐘線scL為高電平時(shí),數(shù)據(jù)線sDA由高電平向低電平變化即啟動了I2c總線,一般稱此過程為起始信號s。接著,主機(jī)將向I2c總線發(fā)送第1個(gè)八位二進(jìn)制數(shù)據(jù)——器件地址(包括最后一位“讀寫選擇位”)。如果被訪I2c器件確認(rèn)自己被選中,將在主機(jī)發(fā)出第9個(gè)scL時(shí)鐘信號時(shí)將SDA拉向低電平,形成一個(gè)應(yīng)答信號AcK。此時(shí),主機(jī)將sDA置高電平,等待被訪I:c器件送回的應(yīng)答信號。收到應(yīng)答信號后,主機(jī)開始執(zhí)行相應(yīng)的讀寫操作。

  一次讀寫完成后,主機(jī)發(fā)出終止信號P,所有I2C器件都將恢復(fù)sDA和scL為高電平的初始狀態(tài),如下圖所示。在時(shí)鐘線SCIJ為高電平時(shí),數(shù)據(jù)線sDA由低到高的電平變化即停止了I2c總線數(shù)據(jù)傳送。

  根據(jù)器件地址最后一位“讀寫選擇位”的不同,可以分為讀和寫兩種情況。但如前所述,讀和寫在操作上還是有所不同的。下面分字節(jié)讀、順序讀、字節(jié)寫、頁寫四種情況分別敘述。

  主機(jī)每發(fā)送完一個(gè)字節(jié),都有一個(gè)將sDA置高電平,等待被訪I2c器件送回的應(yīng)答信號過程,以下過程中將此省略,實(shí)際過程中是不可省略的,特作說明。同樣,主機(jī)接收完IIC器件發(fā)來的1字節(jié)數(shù)據(jù)后,也會向I2c器件發(fā)出一個(gè)信號,即到第9個(gè)scL時(shí)鐘時(shí)將SDA拉為低電平(相當(dāng)于第九位為0),如下圖。

  送出的1個(gè)字節(jié)數(shù)據(jù)→發(fā)出終止信號P。

  如果讀取前未發(fā)送子地址,則讀取的將是上一次讀寫完成后指向的下一字節(jié)內(nèi)容。這一點(diǎn)同樣適用于順序讀過程。需要注意的是,發(fā)送子地址前發(fā)送的器件地址末位應(yīng)為0,屬于寫操作,這是比較容易出錯(cuò)的。

  順序讀先發(fā)送要讀取單元的子地址:發(fā)出起始信號s→發(fā)送器件地址(末位為0,寫操作)→發(fā)送子地址→發(fā)出終止信號P;再發(fā)送讀取命令:發(fā)出起始信號s→發(fā)送器件地址(末位為1,讀操作)一接收I2c器件送出的1個(gè)字節(jié)數(shù)據(jù)一發(fā)出應(yīng)答信號ACK→重復(fù)接收和應(yīng)答信號直至讀取完所要讀取的字節(jié)→發(fā)出終止信號P。

  讀取完所要讀取的字節(jié)后,可以在讀取最后一個(gè)字節(jié)的第9個(gè)SCL時(shí)鐘時(shí)將sDA置高電平(相當(dāng)于第九位為1,稱為反態(tài)應(yīng)答位),等于明確告知I2c器件本次讀取已經(jīng)結(jié)束。

  字節(jié)寫先發(fā)送子地址再發(fā)送要寫入的數(shù)據(jù):發(fā)出起始信號s→發(fā)送器件地址(末位為O,寫操作)→發(fā)送子地址→發(fā)送要寫入的數(shù)據(jù)→發(fā)出終止信號P。

  頁寫先發(fā)送起始子地址再連續(xù)發(fā)送要寫入的數(shù)據(jù):發(fā)出起始信號S→發(fā)送器件地址(末位為0,寫操作)→發(fā)送起始子地址→發(fā)送要寫入第一個(gè)的數(shù)據(jù)→重復(fù)發(fā)送直至發(fā)送完所要連續(xù)寫入的字節(jié)(不同器件可連續(xù)寫入字節(jié)數(shù)有不同的限制)→發(fā)出終止信號P。

  要寫入的字節(jié)超過器件可連續(xù)寫入字節(jié)數(shù)時(shí),應(yīng)通過循環(huán)調(diào)用頁寫過程,逐批將要連續(xù)寫入的字節(jié)寫完。

  3.MCS-51模擬I2C接口

  理解了I2C傳輸協(xié)議標(biāo)準(zhǔn),我們就可以使用Mcs一51單片機(jī)的兩根口線與I2c器件的SDA和scL引腳連接,用軟件模擬I2C傳輸協(xié)議對I2c器件進(jìn)行讀寫操作了。需要注意的是,I2C器件在Mcs-51系統(tǒng)中只能算比較快的設(shè)備,標(biāo)準(zhǔn)的傳送速率為最高不大于100kbps,SCL低電平時(shí)段應(yīng)保持4.7μs以上,高電平時(shí)段應(yīng)保持4.0μs以上。因此,程序中應(yīng)加入延時(shí)子程序,以滿足I2C器件的反應(yīng)速度。

  為了讀者能更方便地開發(fā)和使用I2C,在本刊的網(wǎng)站(W3NW.eleworld.eom)上給出了Mcs-5l模擬I2c接口的標(biāo)準(zhǔn)完整程序,并編寫了一個(gè)配套的vB程序。通過RS232串口連接到MCS-5l串口,可以方便地在計(jì)算機(jī)上讀寫任何I2C器件。

以89C2051和24Cxx連接為例,如上圖方式連接,P1.7為scL線,P1.6為sDA線。89C2051的串口通過MAX232與計(jì)算機(jī)RS232串口三線連接。將模擬I2c接口的I2c 51.a(chǎn)sm文件編譯后,燒錄

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟(jì)和信息化委員會、上海市發(fā)展和改革委員會、上海市商務(wù)委員會、上海市教育委員會、上海市科學(xué)技術(shù)委員會指導(dǎo),東浩蘭生(集團(tuán))有限公司主辦,東浩蘭生會展集團(tuán)上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動駕駛

深圳2025年8月26日 /美通社/ -- 8月26日,由博聞創(chuàng)意會展主辦的 第22屆深圳國際電子展暨嵌入式展(elexcon2025)在深圳(福田)會展中心隆重開幕。 作為中國電子與嵌入式技術(shù)領(lǐng)域的專業(yè)大展,本屆展會...

關(guān)鍵字: 嵌入式 電子 高通 AI

超高功率密度AI電源模塊MPC24380破解算力升級的能源與散熱難題 上海2025年8月27日 /美通社/ -- 8月26日,elexcon2025-第22屆深圳國際電子展正式拉開帷幕。為了表彰在"AI與雙碳"雙線技術(shù)...

關(guān)鍵字: 電子 AI芯片 PS BSP

上海2025年8月26日 /美通社/ -- 奧特斯亮相在深圳會展中心(福田)舉辦的第22屆深圳國際電子展(ELEXCON 2025)。奧特斯展示了其在高性能半導(dǎo)體封裝載板、高密度互連印制電路板及系統(tǒng)級封裝模塊方面的最新創(chuàng)...

關(guān)鍵字: 電子 高性能計(jì)算 半導(dǎo)體封裝 封裝技術(shù)

首展AI感測機(jī)器人 虛實(shí)整合方案打造智能工廠 上海2025年8月25日 /美通社/ -- 臺達(dá)20日宣布以"AI 賦能 創(chuàng)變永續(xù)智造"為主軸,于2025臺北國際自動化工業(yè)大展登場,展示全球...

關(guān)鍵字: 自動化 智能制造 協(xié)作機(jī)器人 電子

上海2025年8月19日 /美通社/ -- 隨著科技的迅速發(fā)展,零售市場正經(jīng)歷前所未有的變革。消費(fèi)者對便捷、高效且安全的購物體驗(yàn)需求日益提升,促使零售業(yè)者積極尋求創(chuàng)新解決方案,以提升服務(wù)質(zhì)量與營運(yùn)效率。根據(jù)市場研究機(jī)構(gòu)G...

關(guān)鍵字: POS 平板 電子 BSP

憑借在客服與電商領(lǐng)域的服務(wù)升級與技術(shù)創(chuàng)新,獲得高度評價(jià) 上海2025年8月5日 /美通社/ -- transcosmos集團(tuán)(中文名:大宇宙集團(tuán);以下簡稱:transcosmos)近日受邀參與由中國國際投資促進(jìn)會主辦的...

關(guān)鍵字: TRANS COSMOS 人工智能 電子

寧波2025年7月28日 /美通社/ -- 日前,在第四屆寧波市專利創(chuàng)新大賽的聚光燈下,中之杰智能的創(chuàng)新技術(shù)"一種基于電子周轉(zhuǎn)箱的生產(chǎn)管理方法及系統(tǒng)"強(qiáng)勢斬獲專利優(yōu)秀獎(jiǎng)。這枚沉甸甸的獎(jiǎng)?wù)卤澈?..

關(guān)鍵字: 軟件 電子 智能工廠 BSP

上海2025年7月25日 /美通社/ -- 全球領(lǐng)先的電子設(shè)計(jì)與制造服務(wù)供貨商USI環(huán)旭電子宣布,即將推出新一代1.6T光模組產(chǎn)品,鎖定高速運(yùn)算與AI數(shù)據(jù)中心應(yīng)用,協(xié)助客戶提升數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)湫?,?yīng)對AI模型規(guī)模擴(kuò)展所...

關(guān)鍵字: 數(shù)據(jù)中心 電子 高速傳輸 AI

上海2025年7月21日 /美通社/ -- 本文圍繞跨域時(shí)間同步技術(shù)展開,作為智能汽車 "感知-決策-執(zhí)行 -交互" 全鏈路的時(shí)間基準(zhǔn),文章介紹了 PTP、gPTP、CAN 等主流同步技術(shù)及特點(diǎn),并以...

關(guān)鍵字: 時(shí)鐘 時(shí)間同步 同步技術(shù) 智能汽車
關(guān)閉