两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

通過I2C接口讀寫內(nèi)部寄存器堆的裝置及方法與流程

文檔序號(hào):11154906閱讀:504來源:國(guó)知局
通過I2C接口讀寫內(nèi)部寄存器堆的裝置及方法與制造工藝

本發(fā)明屬于電通信技術(shù)領(lǐng)域,更具體地涉及一種通過I2C接口讀寫內(nèi)部寄存器堆的裝置及方法。



背景技術(shù):

MIPI接口是一種新興的高速接口,具有低功耗、高傳輸速率等特點(diǎn),在移動(dòng)設(shè)備中有著廣泛的應(yīng)用。MPHY IP是MIPI設(shè)計(jì)中最關(guān)鍵的部分,MPHY由于可以靈活的配置多種可選模式和屬性,因而相比其他串行PHY具有顯著的優(yōu)勢(shì)。這一靈活性是通過MPHY的配置區(qū)域來實(shí)現(xiàn)的,MPHY的配置區(qū)域由寄存器堆構(gòu)成,其中的每個(gè)寄存器都具有特定的ID號(hào)。增強(qiáng)配置區(qū)域的可測(cè)試性和可觀測(cè)性對(duì)MPHY的設(shè)計(jì)和驗(yàn)證至關(guān)重要。

然而,在芯片設(shè)計(jì)過程中,面積、功耗、外部接口的數(shù)量等制約因素,一定程度上限制了可測(cè)試方案。I2C接口作為各種總線中使用信號(hào)線最少的總線,僅通過SCL和SDA兩根線就可以實(shí)現(xiàn)數(shù)據(jù)的傳輸,因此,I2C接口成為了常用的解決方案。在芯片設(shè)計(jì)當(dāng)中,出于測(cè)試用途考慮,常常在芯片的設(shè)計(jì)中加入I2C從機(jī),將需要觀測(cè)的片內(nèi)信號(hào)寄存在I2C寄存器中,通過片外I2C主機(jī)對(duì)片內(nèi)I2C從機(jī)發(fā)起讀請(qǐng)求的方式來觀測(cè)片內(nèi)信號(hào),同樣的,也可以將需要強(qiáng)制改寫的片內(nèi)信號(hào)的改寫值和改寫使能寄存在I2C寄存器中,通過片外I2C主機(jī)對(duì)片內(nèi)I2C從機(jī)發(fā)起寫請(qǐng)求的方式來強(qiáng)制改寫片內(nèi)信號(hào)。而對(duì)于內(nèi)部寄存器堆而言,由于寄存器數(shù)目眾多,將每個(gè)寄存器中存儲(chǔ)的數(shù)值分別寄存到I2C寄存器中來實(shí)現(xiàn)可測(cè)試和可觀測(cè)的方式,會(huì)消耗大量的I2C寄存器資源,進(jìn)而影響功耗、面積等性能指標(biāo)。因此,如何在不額外增加外部接口開銷和內(nèi)部存儲(chǔ)資源消耗的前提下,實(shí)現(xiàn)對(duì)芯片內(nèi)部寄存器堆的讀寫,對(duì)可測(cè)試性設(shè)計(jì)有著重要意義。



技術(shù)實(shí)現(xiàn)要素:

基于以上問題,本發(fā)明的主要目的在于提出一種通過I2C接口讀寫內(nèi)部寄存器堆的裝置及方法,用于解決上述技術(shù)問題中的至少之一。

為了實(shí)現(xiàn)上述目的,作為本發(fā)明的一個(gè)方面,本發(fā)明提出了一種通過I2C接口讀寫內(nèi)部寄存器堆的裝置,包括I2C主機(jī)、I2C從機(jī)、讀寫使能控制單元和讀寫操作單元,其中:

I2C主機(jī)用于向I2C從機(jī)和讀寫使能控制模塊發(fā)送信號(hào),并讀取I2C從機(jī)中的數(shù)據(jù);

I2C從機(jī),包括第一I2C讀寫寄存器、第二I2C讀寫寄存器和I2C只讀寄存器,用于分別接收I2C主機(jī)的發(fā)送信號(hào)并分別存儲(chǔ)I2C主機(jī)讀寫的寫ID和寫數(shù)據(jù)、讀ID及讀數(shù)據(jù);

讀寫操作單元用于對(duì)內(nèi)部寄存器堆進(jìn)行讀寫操作;

讀寫使能控制單元用于根據(jù)I2C主機(jī)的發(fā)送信號(hào)產(chǎn)生讀或?qū)懯鼓苄盘?hào)并置1來控制讀寫操作單元,當(dāng)寫使能信號(hào)為1時(shí),讀寫操作單元根據(jù)寫ID和寫數(shù)據(jù)進(jìn)行寫操作;當(dāng)讀使能信號(hào)為1時(shí),讀寫操作單元根據(jù)讀ID進(jìn)行讀操作,并將讀取的讀數(shù)據(jù)反饋至I2C只讀寄存器。

進(jìn)一步地,上述讀寫操作單元還用于在完成寫操作或讀操作后產(chǎn)生寫完成信號(hào)或讀完成信號(hào)并置1反饋至讀寫使能控制單元,寫完成信號(hào)和讀完成信號(hào)在保持一個(gè)周期后置0。

進(jìn)一步地,上述讀寫使能控制單元包括一傳送過程判斷模塊、一從機(jī)地址及傳送方向判斷模塊、一寫使能產(chǎn)生模塊和一讀使能產(chǎn)生模塊。

進(jìn)一步地,上述I2C主機(jī)向讀寫使能控制單元發(fā)送的信號(hào)為SCL和SDA線上狀態(tài)的變化,傳送過程判斷模塊根據(jù)此信號(hào)來判斷I2C主機(jī)是否進(jìn)行I2C操作并在檢測(cè)到I2C起始信號(hào)后,產(chǎn)生傳送過程指示信號(hào)并置1;在檢測(cè)到I2C終止信號(hào)后,將傳送過程指示信號(hào)置0。

進(jìn)一步地,上述從機(jī)地址及傳送方向判斷模塊在傳送過程指示信號(hào)為1時(shí),判斷操作為寫操作或者讀操作,并在進(jìn)行寫操作時(shí),產(chǎn)生預(yù)寫使能信號(hào)并置1;在進(jìn)行讀操作時(shí),產(chǎn)生預(yù)讀使能信號(hào)并置1。

進(jìn)一步地,上述從機(jī)地址及傳送方向判斷模塊還用于接收寫完成信號(hào)或讀使能信號(hào)并將預(yù)寫使能信號(hào)或預(yù)讀使能信號(hào)置0。

進(jìn)一步地,上述寫使能產(chǎn)生模塊,用于在預(yù)寫使能信號(hào)為1且傳送過程指示信號(hào)為0時(shí),產(chǎn)生寫使能信號(hào)并置1傳輸至讀寫操作單元,還用于接收寫完成信號(hào)并將所述寫使能信號(hào)置0;

進(jìn)一步地,上述讀使能產(chǎn)生模塊,用于在預(yù)讀使能信號(hào)為1且傳送過程指示信號(hào)為0時(shí),產(chǎn)生讀使能信號(hào)并置1傳輸至讀寫操作單元,還用于接收讀完成信號(hào)并將讀使能信號(hào)置0。

進(jìn)一步地,上述讀寫操作單元包括一寫操作模塊和一讀操作模塊。

進(jìn)一步地,上述寫操作模塊接收寫ID、寫數(shù)據(jù)和寫使能信號(hào),并在寫使能信號(hào)為1時(shí)對(duì)內(nèi)部寄存器堆中相應(yīng)的寄存器進(jìn)行改寫操作,并在完成改寫操作后產(chǎn)生寫完成信號(hào)并置1反饋至從機(jī)地址及傳送方向判斷模塊和寫使能產(chǎn)生模塊。

進(jìn)一步地,上述讀操作模塊接收讀ID并在讀使能信號(hào)為1時(shí),對(duì)內(nèi)部寄存器堆中相應(yīng)的寄存器進(jìn)行讀取操作,并在完成讀取操作后產(chǎn)生讀完成信號(hào)并置1反饋至從機(jī)地址及傳送方向判斷模塊和讀使能產(chǎn)生模塊,同時(shí)將讀取的讀數(shù)據(jù)發(fā)送至I2C只讀寄存器存儲(chǔ)。

為了實(shí)現(xiàn)上述目的,作為本發(fā)明的另一個(gè)方面,本發(fā)明提出一種通過I2C接口改寫內(nèi)部寄存器堆的方法,該方法通過如下裝置實(shí)現(xiàn),該裝置包括I2C主機(jī)、I2C從機(jī)、讀寫使能控制單元和讀寫操作單元;該方法包括以下步驟:

步驟11、I2C主機(jī)向讀寫使能控制單元發(fā)送I2C操作開始信號(hào)及數(shù)據(jù)改寫信號(hào),并向I2C從機(jī)發(fā)送進(jìn)行數(shù)據(jù)改寫的寫ID和寫數(shù)據(jù);

步驟12、讀寫使能控制單元根據(jù)I2C操作開始信號(hào)及數(shù)據(jù)改寫信號(hào),產(chǎn)生預(yù)寫使能信號(hào)并置1;

步驟13、I2C主機(jī)向所述讀寫使能控制單元發(fā)送I2C操作停止信號(hào);

步驟14、讀寫使能控制單元根據(jù)I2C操作停止信號(hào)及為1的預(yù)寫使能信號(hào),產(chǎn)生寫使能信號(hào)并置1;

步驟15、讀寫操作單元根據(jù)寫ID及寫數(shù)據(jù),接收為1的寫使能信號(hào),對(duì)內(nèi)部寄存器堆進(jìn)行改寫操作,在完成改寫操作后產(chǎn)生寫完成信號(hào)并置1反饋給讀寫使能控制單元;

步驟16、讀寫使能控制單元接收為1的寫完成信號(hào)將預(yù)寫使能信號(hào)和寫使能信號(hào)置0,完成對(duì)內(nèi)部寄存器堆的改寫。

本發(fā)明另一方面還提出一種通過I2C接口讀取內(nèi)部寄存器堆的方法,該方法通過如下裝置實(shí)現(xiàn),該裝置包括I2C主機(jī)、讀寫使能控制單元和讀寫操作單元;該方法包括以下步驟:

步驟21、I2C主機(jī)向讀寫使能控制單元發(fā)送I2C操作開始信號(hào)及數(shù)據(jù)讀取信號(hào),并向I2C從機(jī)發(fā)送進(jìn)行數(shù)據(jù)讀取的讀ID;

步驟22、讀寫使能控制單元根據(jù)I2C操作開始信號(hào)及數(shù)據(jù)讀取信號(hào),產(chǎn)生預(yù)讀使能信號(hào)并置1;

步驟23、I2C主機(jī)向讀寫使能控制單元傳輸I2C操作停止信號(hào);

步驟24、讀寫使能控制單元根據(jù)I2C操作停止信號(hào)及為1的預(yù)讀使能信號(hào),產(chǎn)生讀使能信號(hào)并置1;

步驟25、讀寫操作單元根據(jù)讀ID,接收為1的讀使能信號(hào),對(duì)內(nèi)部寄存器堆進(jìn)行讀取操作,在完成讀取操作后產(chǎn)生讀完成信號(hào)并置1反饋給讀寫使能控制單元,并將讀取的讀數(shù)據(jù)傳輸至I2C從機(jī);

步驟26、讀寫使能控制單元接收為1的讀完成信號(hào)將預(yù)讀使能信號(hào)和讀使能信號(hào)置0;

步驟27、I2C主機(jī)向I2C從機(jī)發(fā)送信號(hào),讀取讀數(shù)據(jù),完成對(duì)內(nèi)部寄存器堆的讀取。

基于上述方案可知,本發(fā)明提供的通過I2C接口讀寫內(nèi)部寄存器堆的裝置及方法,只需兩個(gè)I2C讀寫寄存器和一個(gè)I2C只讀寄存器,I2C從機(jī)不需與內(nèi)部寄存器堆的寄存器一一對(duì)應(yīng),通過讀寫使能控制模塊和讀寫操作模塊進(jìn)行讀寫操作,則在不額外增加外部接口開銷和內(nèi)部存儲(chǔ)資源消耗的前提下,可以有效地實(shí)現(xiàn)對(duì)內(nèi)部寄存器堆的讀寫,進(jìn)而有效地增加了內(nèi)部寄存器堆的可測(cè)試性和可觀測(cè)性。

附圖說明

圖1是本發(fā)明一實(shí)施例示出的通過I2C接口讀寫內(nèi)部寄存器堆的裝置結(jié)構(gòu)示意圖;

圖2是本發(fā)明一實(shí)施例示出的讀寫使能控制模塊的結(jié)構(gòu)示意圖;

圖3是本發(fā)明一實(shí)施例示出的讀寫操作模塊的結(jié)構(gòu)示意圖;

圖4是本發(fā)明一實(shí)施例示出的通過I2C接口改寫指定內(nèi)部寄存器的信號(hào)關(guān)系圖;

圖5是本發(fā)明另一實(shí)施例示出的通過I2C接口讀取指定內(nèi)部寄存器的信號(hào)關(guān)系圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。

本發(fā)明一方面公開了一種通過I2C接口讀寫內(nèi)部寄存器堆的裝置,包括I2C主機(jī)、I2C從機(jī)、讀寫使能控制單元和讀寫操作單元,其中:

I2C主機(jī)用于向I2C從機(jī)和讀寫使能控制模塊發(fā)送信號(hào),并讀取I2C從機(jī)中的數(shù)據(jù);

I2C從機(jī),主要包括第一I2C讀寫寄存器、第二I2C讀寫寄存器和I2C只讀寄存器,用于分別接收I2C主機(jī)的發(fā)送信號(hào)并分別存儲(chǔ)I2C主機(jī)讀寫的寫ID和寫數(shù)據(jù)、讀ID及讀數(shù)據(jù);其中作為優(yōu)選,該I2C從機(jī)主要由第一I2C讀寫寄存器、第二I2C讀寫寄存器和I2C只讀寄存器組成,僅通過這三個(gè)寄存器即可實(shí)現(xiàn)對(duì)內(nèi)部寄存器堆中的若干個(gè)寄存器進(jìn)行讀寫操作。

讀寫操作單元用于對(duì)內(nèi)部寄存器堆進(jìn)行讀寫操作;

讀寫使能控制單元用于根據(jù)I2C主機(jī)的發(fā)送信號(hào)產(chǎn)生讀或?qū)懯鼓苄盘?hào)并置1來控制讀寫操作單元,當(dāng)寫使能信號(hào)為1時(shí),讀寫操作單元根據(jù)寫ID和寫數(shù)據(jù)進(jìn)行寫操作;當(dāng)讀使能信號(hào)為1時(shí),讀寫操作單元根據(jù)讀ID進(jìn)行讀操作,并將讀取的讀數(shù)據(jù)反饋至I2C只讀寄存器。

其中,上述讀寫操作單元還用于在完成寫操作或讀操作后產(chǎn)生寫完成信號(hào)或讀完成信號(hào)并置1反饋至讀寫使能控制單元,寫完成信號(hào)和讀完成信號(hào)在保持一個(gè)周期后置0。

優(yōu)選地,上述讀寫使能控制單元包括一傳送過程判斷模塊、一從機(jī)地址及傳送方向判斷模塊、一寫使能產(chǎn)生模塊和一讀使能產(chǎn)生模塊。I2C主機(jī)向讀寫使能控制單元發(fā)送的信號(hào)為SCL和SDA線上狀態(tài)的變化,

傳送過程判斷模塊根據(jù)此信號(hào)來判斷I2C主機(jī)是否進(jìn)行I2C操作并在檢測(cè)到I2C起始信號(hào)后,產(chǎn)生傳送過程指示信號(hào)并置1;在檢測(cè)到I2C終止信號(hào)后,將傳送過程指示信號(hào)置0。

從機(jī)地址及傳送方向判斷模塊在傳送過程指示信號(hào)為1時(shí),判斷操作為寫操作或者讀操作,并在進(jìn)行寫操作時(shí),產(chǎn)生預(yù)寫使能信號(hào)并置1;在進(jìn)行讀操作時(shí),產(chǎn)生預(yù)讀使能信號(hào)并置1;優(yōu)選地,從機(jī)地址及傳送方向判斷模塊還用于接收寫完成信號(hào)或讀使能信號(hào)并將預(yù)寫使能信號(hào)或預(yù)讀使能信號(hào)置0。

寫使能產(chǎn)生模塊,用于在預(yù)寫使能信號(hào)為1且傳送過程指示信號(hào)為0時(shí),產(chǎn)生寫使能信號(hào)并置1傳輸至讀寫操作單元,還用于接收寫完成信號(hào)并將所述寫使能信號(hào)置0;

讀使能產(chǎn)生模塊,用于在預(yù)讀使能信號(hào)為1且傳送過程指示信號(hào)為0時(shí),產(chǎn)生讀使能信號(hào)并置1傳輸至讀寫操作單元,還用于接收讀完成信號(hào)并將讀使能信號(hào)置0。

優(yōu)選地,上述讀寫操作單元包括一寫操作模塊和一讀操作模塊。

寫操作模塊接收寫ID、寫數(shù)據(jù)和寫使能信號(hào),并在寫使能信號(hào)為1時(shí)對(duì)內(nèi)部寄存器堆中相應(yīng)的寄存器進(jìn)行改寫操作,并在完成改寫操作后產(chǎn)生寫完成信號(hào)并置1反饋至從機(jī)地址及傳送方向判斷模塊和寫使能產(chǎn)生模塊。

讀操作模塊接收讀ID并在讀使能信號(hào)為1時(shí),對(duì)內(nèi)部寄存器堆中相應(yīng)的寄存器進(jìn)行讀取操作,并在完成讀取操作后產(chǎn)生讀完成信號(hào)并置1反饋至從機(jī)地址及傳送方向判斷模塊和讀使能產(chǎn)生模塊,同時(shí)將讀取的讀數(shù)據(jù)發(fā)送至I2C只讀寄存器存儲(chǔ)。

本發(fā)明另一方面公開了一種通過I2C接口改寫內(nèi)部寄存器堆的方法,該方法通過如下裝置實(shí)現(xiàn),該裝置包括I2C主機(jī)、I2C從機(jī)、讀寫使能控制單元和讀寫操作單元;該方法包括以下步驟:

步驟11、I2C主機(jī)向讀寫使能控制單元發(fā)送I2C操作開始信號(hào)及數(shù)據(jù)改寫信號(hào),并向I2C從機(jī)發(fā)送進(jìn)行數(shù)據(jù)改寫的寫ID和寫數(shù)據(jù);

步驟12、讀寫使能控制單元根據(jù)I2C操作開始信號(hào)及數(shù)據(jù)改寫信號(hào),產(chǎn)生預(yù)寫使能信號(hào)并置1;

步驟13、I2C主機(jī)向所述讀寫使能控制單元發(fā)送I2C操作停止信號(hào);

步驟14、讀寫使能控制單元根據(jù)I2C操作停止信號(hào)及為1的預(yù)寫使能信號(hào),產(chǎn)生寫使能信號(hào)并置1;

步驟15、讀寫操作單元根據(jù)寫ID及寫數(shù)據(jù),接收為1的寫使能信號(hào),對(duì)內(nèi)部寄存器堆進(jìn)行改寫操作,在完成改寫操作后產(chǎn)生寫完成信號(hào)并置1反饋給讀寫使能控制單元;

步驟16、讀寫使能控制單元接收為1的寫完成信號(hào)將預(yù)寫使能信號(hào)和寫使能信號(hào)置0,完成對(duì)內(nèi)部寄存器堆的改寫。

本發(fā)明還公開了一種通過I2C接口讀取內(nèi)部寄存器堆的方法,該方法通過如下裝置實(shí)現(xiàn),該裝置包括I2C主機(jī)、讀寫使能控制單元和讀寫操作單元;該方法包括以下步驟:

步驟21、I2C主機(jī)向讀寫使能控制單元發(fā)送I2C操作開始信號(hào)及數(shù)據(jù)讀取信號(hào),并向I2C從機(jī)發(fā)送進(jìn)行數(shù)據(jù)讀取的讀ID;

步驟22、讀寫使能控制單元根據(jù)I2C操作開始信號(hào)及數(shù)據(jù)讀取信號(hào),產(chǎn)生預(yù)讀使能信號(hào)并置1;

步驟23、I2C主機(jī)向讀寫使能控制單元傳輸I2C操作停止信號(hào);

步驟24、讀寫使能控制單元根據(jù)I2C操作停止信號(hào)及為1的預(yù)讀使能信號(hào),產(chǎn)生讀使能信號(hào)并置1;

步驟25、讀寫操作單元根據(jù)讀ID,接收為1的讀使能信號(hào),對(duì)內(nèi)部寄存器堆進(jìn)行讀取操作,在完成讀取操作后產(chǎn)生讀完成信號(hào)并置1反饋給讀寫使能控制單元,并將讀取的讀數(shù)據(jù)傳輸至I2C從機(jī);

步驟26、讀寫使能控制單元接收為1的讀完成信號(hào)將預(yù)讀使能信號(hào)和讀使能信號(hào)置0;

步驟27、I2C主機(jī)向I2C從機(jī)發(fā)送信號(hào),讀取讀數(shù)據(jù),完成對(duì)內(nèi)部寄存器堆的讀取。

以下通過具體實(shí)施例對(duì)本發(fā)明提出的通過I2C接口讀寫內(nèi)部寄存器堆的裝置及方法進(jìn)行詳細(xì)描述。

實(shí)施例1

如圖1所示,為本實(shí)施例1提出的通過I2C接口讀寫內(nèi)部寄存器堆的裝置結(jié)構(gòu)示意圖,本裝置包括I2C主機(jī)、包括三個(gè)I2C寄存器的I2C從機(jī)、讀寫使能控制模塊和讀寫操作模塊,以下分別說明各部分的具體功能。

I2C主機(jī)用于向I2C從機(jī)和讀寫使能控制模塊發(fā)送信號(hào),并讀取I2C從機(jī)中的數(shù)據(jù);

三個(gè)I2C寄存器,具體包括:

第一I2C讀寫寄存器,用于存儲(chǔ)需要進(jìn)行改寫的內(nèi)部寄存器的ID值及改寫后的數(shù)據(jù),簡(jiǎn)稱寫ID和寫數(shù)據(jù),其值是讀寫操作單元在進(jìn)行寫操作時(shí)的依據(jù),12C主機(jī)可以對(duì)第一I2C讀寫寄存器進(jìn)行讀寫控制;

第二I2C讀寫寄存器,用于存儲(chǔ)需要讀取的內(nèi)部寄存器的ID值,簡(jiǎn)稱讀ID,其值可被讀寫操作單元在進(jìn)行讀操作的時(shí)候使用,I2C主機(jī)可以對(duì)第二I2C讀寫寄存器進(jìn)行讀寫控制;

12C只讀寄存器,用于存儲(chǔ)讀寫操作單元返回的指定讀ID寄存器中的數(shù)據(jù),簡(jiǎn)稱讀數(shù)據(jù),I2C主機(jī)只能對(duì)I2C只讀寄存器進(jìn)行讀操作。

讀寫使能控制模塊,用于根據(jù)SCL和SDA總線的起始、從機(jī)地址、傳送方向以及終止?fàn)顟B(tài),和讀寫操作模塊輸出的讀寫操作完成反饋,來產(chǎn)生讀寫使能信號(hào)。

讀寫操作模塊,用于實(shí)現(xiàn)對(duì)內(nèi)部寄存器堆的讀寫操作,在寫使能信號(hào)有效時(shí),對(duì)指定寫ID的內(nèi)部寄存器寫入指定的寫內(nèi)容,并在完成本次寫操作后返回寫操作完成信號(hào);在讀使能信號(hào)有效的時(shí)刻,將指定讀ID的內(nèi)部寄存器中存儲(chǔ)的內(nèi)容反饋到I2C只讀寄存器中,并在完成本次讀操作后返回讀操作完成信號(hào)。

如圖2所示,為本實(shí)施例1所述的讀寫使能控制模塊的結(jié)構(gòu)示意圖,具體包括:

傳送過程判斷模塊,用于根據(jù)SCL和SDA線上狀態(tài)的變化,來判斷I2C主機(jī)是否正在進(jìn)行I2C操作,并在檢測(cè)到I2C起始信號(hào)后,將傳送過程指示信號(hào)置1,直到檢測(cè)到I2C終止信號(hào),再將其置0;

從機(jī)地址及傳送方向判斷模塊,用于根據(jù)傳送過程指示信號(hào)有效之后的前七個(gè)比特的值,來判斷從機(jī)地址,再根據(jù)傳送過程指示信號(hào)有效之后的第八個(gè)比特的值,來判斷當(dāng)前I2C操作的傳送方向?yàn)樽x操作還是寫操作,并在檢測(cè)到當(dāng)前I2C操作的傳送方向?yàn)閷懖僮鲿r(shí),將預(yù)寫使能信號(hào)置1,并保持直至讀寫操作單元輸出的寫操作完成信號(hào)有效后再重新置0;在檢測(cè)到當(dāng)前I2C操作的傳送方向?yàn)樽x操作時(shí),將預(yù)讀使能信號(hào)置1,并保持直至讀寫操作單元輸出的讀操作完成信號(hào)有效時(shí)重新置0;

寫使能產(chǎn)生模塊,用于根據(jù)傳送過程指示信號(hào)、預(yù)寫使能信號(hào)和讀寫操作單元輸出的寫操作完成信號(hào),來產(chǎn)生寫使能控制信號(hào),并在預(yù)寫使能信號(hào)有效且傳送過程指示信號(hào)無效時(shí),將寫使能控制信號(hào)置1,并保持直到寫操作完成信號(hào)有效后再重新置0;

讀使能產(chǎn)生模塊,用于根據(jù)傳送過程指示信號(hào)、預(yù)讀使能信號(hào)和讀寫操作單元輸出的讀操作完成信號(hào),來產(chǎn)生讀使能控制信號(hào),并在預(yù)讀使能信號(hào)有效且傳送過程指示信號(hào)無效時(shí),將讀使能控制信號(hào)置1,并保持直到讀操作完成信號(hào)有效后再重新置0。

如圖3所示,為本實(shí)施例1所述的讀寫操作模塊的結(jié)構(gòu)示意圖,具體包括:

寫操作模塊,用于根據(jù)第一I2C讀寫寄存器中存儲(chǔ)的寫ID和寫數(shù)據(jù),在寫使能信號(hào)有效時(shí),將寫數(shù)據(jù)寫入到指定寫ID的內(nèi)部寄存器中,并在完成本次寫操作后將寫操作完成信號(hào)置1,保持一個(gè)周期后重新置0;

讀操作模塊,用于根據(jù)第二I2C讀寫寄存器中存儲(chǔ)的讀ID,在讀使能信號(hào)有效時(shí),將指定讀ID的內(nèi)部寄存器的值寫入到I2C只讀寄存器中,并在完成本次讀操作后將讀操作完成信號(hào)置1,保持一個(gè)周期后重新置0。

實(shí)施例2

如圖4所示,為本實(shí)施例提出的通過I2C接口改寫內(nèi)部寄存器堆的方法的信號(hào)關(guān)系圖,其改寫的具體步驟如下描述:

步驟11、讀寫使能控制模塊中的傳送過程判斷模塊,根據(jù)SCL和SDA線上狀態(tài)的變化,來判斷I2C傳送的起始標(biāo)志,SDA信號(hào)在SCL信號(hào)為高電平時(shí)出現(xiàn)下降沿即表示I2C傳送開始,傳送過程判斷模塊在檢測(cè)到此變化時(shí)將傳送過程指示信號(hào)置1;

步驟12、讀寫使能控制模塊中的從機(jī)地址及傳送方向判斷模塊,根據(jù)傳送過程指示信號(hào)有效之后的前七個(gè)比特的從機(jī)地址值和第八個(gè)比特的傳送方向值進(jìn)行判斷,并在檢測(cè)到當(dāng)前I2C操作是對(duì)第一I2C讀寫寄存器的寫操作時(shí),將預(yù)寫使能信號(hào)置1;

步驟13、讀寫使能控制模塊中的傳送過程判斷模塊,根據(jù)SCL和SDA線上狀態(tài)的變化,來判斷I2C傳送的終止標(biāo)志,SDA信號(hào)在SCL信號(hào)為高電平時(shí)出現(xiàn)上升沿即表示I2C傳送終止,傳送過程判斷模塊在檢測(cè)到此變化時(shí)將傳送過程指示信號(hào)置0;步驟14、讀寫使能控制模塊中的寫使能產(chǎn)生模塊,在預(yù)寫使能信號(hào)為1且傳送過程指示信號(hào)為0時(shí),將寫使能信號(hào)置1;

步驟15、讀寫操作模塊中的寫操作模塊,根據(jù)第一I2C讀寫寄存器中存儲(chǔ)的寫ID和寫數(shù)據(jù),將寫數(shù)據(jù)寫入到指定寫ID的內(nèi)部寄存器中,并在完成本次寫操作后將寫完成信號(hào)置1反饋給讀寫使能控制模塊的從機(jī)地址及傳送方向判斷模塊和寫使能產(chǎn)生模塊;

步驟16、讀寫使能控制模塊中的從機(jī)地址及傳送方向判斷模塊和寫使能產(chǎn)生模塊,在寫操作完成信號(hào)為1后,分別將預(yù)寫使能信號(hào)和寫使能控制信號(hào)重新置0,完成對(duì)內(nèi)部寄存器堆的改寫。

實(shí)施例3

如圖5所示,為本實(shí)施例提出的通過I2C接口讀取內(nèi)部寄存器堆的方法的信號(hào)關(guān)系圖,其讀取的具體步驟如下描述:

步驟21、讀寫使能控制模塊中的傳送過程判斷模塊,根據(jù)SCL和SDA線上狀態(tài)的變化,來判斷I2C傳送的起始標(biāo)志,SDA信號(hào)在SCL信號(hào)為高電平時(shí)出現(xiàn)下降沿即表示I2C傳送開始,傳送過程判斷模塊在檢測(cè)到此變化時(shí)將傳送過程指示信號(hào)置1;

步驟22、讀寫使能控制模塊中的從機(jī)地址及傳送方向判斷模塊,根據(jù)傳送過程指示信號(hào)有效之后的前七個(gè)比特的從機(jī)地址值和第八個(gè)比特的傳送方向值進(jìn)行判斷,并在檢測(cè)到當(dāng)前I2C操作是對(duì)第二I2C讀寫寄存器的寫操作時(shí),將預(yù)讀使能信號(hào)置1;

步驟23、讀寫使能控制模塊中的傳送過程判斷模塊,根據(jù)SCL和SDA線上狀態(tài)的變化,來判斷I2C傳送的終止標(biāo)志,SDA信號(hào)在SCL信號(hào)為高電平時(shí)出現(xiàn)上升沿即表示I2C傳送終止,傳送過程判斷模塊在檢測(cè)到此變化時(shí)將傳送過程指示信號(hào)置0;

步驟24、讀寫使能控制模塊中的讀使能產(chǎn)生模塊,在預(yù)讀使能信號(hào)為1且傳送過程指示信號(hào)為0時(shí),將讀使能信號(hào)置1;

步驟25、讀寫操作模塊中的讀操作模塊,根據(jù)第二I2C讀寫寄存器中存儲(chǔ)的讀ID,在讀使能信號(hào)為1時(shí),將指定讀ID的內(nèi)部寄存器的值寫入到I2C只讀寄存器中,并在完成本次讀操作后將讀完成信號(hào)置1并反饋給讀寫使能控制模塊中的從機(jī)地址及傳送方向判斷模塊和讀使能產(chǎn)生模塊;

步驟26、讀寫使能控制模塊中的從機(jī)地址及傳送方向判斷模塊和讀使能產(chǎn)生模塊,在讀完成信號(hào)為1時(shí),分別將預(yù)讀使能信號(hào)和讀使能信號(hào)重新置0;

步驟27、I2C主機(jī)對(duì)I2C只讀寄存器發(fā)起讀操作,進(jìn)而獲取指定讀ID的內(nèi)部寄存器的值,完成對(duì)內(nèi)部寄存器堆的讀取。

以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
米泉市| 西平县| 高安市| 浪卡子县| 蓝山县| 建德市| 深圳市| 梓潼县| 岗巴县| 舒城县| 平远县| 手游| 姜堰市| 炎陵县| 宁海县| 九江县| 宜昌市| 南漳县| 渝北区| 抚州市| 武陟县| 交城县| 来凤县| 于田县| 宁城县| 两当县| 交口县| 宿州市| 德州市| 云梦县| 句容市| 贡嘎县| 阿勒泰市| 黎城县| 忻州市| 军事| 麦盖提县| 丹凤县| 绿春县| 南丹县| 泰和县|