本發(fā)明涉及芯片設計領域,尤其涉及一種芯片內部寄存器的校驗電路及芯片。
背景技術:
在通過外部通訊接口對芯片內部寄存器進行寫入配置數(shù)據(jù)的過程中,由于容易受到外部環(huán)境的干擾、芯片供電電壓異常等因素的影響,外部通訊接口的通訊電平可能會出現(xiàn)異常、抖動、毛刺等情況,導致寫入芯片內部寄存器值可能出現(xiàn)錯誤。
因此,在對芯片內部寄存器進行寫入配置數(shù)據(jù)后,需要對芯片內部寄存器進行校驗,以判斷寫入芯片的配置值是否正確,確保芯片的正常工作。
在現(xiàn)有技術中,通常采用的校驗方法如下:在芯片內部寄存器寫入操作全部完成后,上位機通過芯片的外部通訊接口將芯片內部寄存器中的值讀出,并與寫入值進行一一比較,來校驗寫入時是否出現(xiàn)錯誤。然而,當芯片內配置的寄存器個數(shù)較多時,校驗時長較長,校驗效率較低。此外,上位機通過芯片的外部通訊接口將芯片內部寄存器的值讀取的過程中,同樣可能會受到外部干擾導致讀取出錯,因此校驗結果可靠性較差。
技術實現(xiàn)要素:
本發(fā)明解決的技術問題是提高對寫入芯片內部寄存器數(shù)據(jù)的校驗效率,提高校驗結果的可靠性。
為解決上述技術問題,本發(fā)明實施例提供一種芯片內部寄存器的校驗電路,所述校驗電路設置在所述芯片內部,包括:第一校驗單元、第二校驗單元、比較電路以及反饋信號生成電路,其中:所述第一校驗單元,與上位機耦接,適于接收所述上位機寫入的理論校驗值以及第一校驗值,并對所述理論校驗值進行第一校驗運算,將得到的第一校驗結果與所述第一校驗值進行比較,并當所述第一校驗結果與所述第一校驗值不相等時,向所述反饋信號生成電路發(fā)送第一觸發(fā)信號,其中:所述第一校驗值由所述上位機根據(jù)所述理論校驗值進行第一校驗運算得到;所述第二校驗單元,與所述芯片內部寄存器組耦接,適于對寫入所述寄存器組的配置數(shù)據(jù)進行校驗,生成實際校驗值;所述比較電路,與所述第一校驗單元以及所述第二校驗單元耦接,適于將所述實際校驗值與所述理論校驗值進行比較,并將比較結果發(fā)送至所述反饋信號生成電路;所述反饋信號生成電路,適于當所述比較結果為所述實際校驗值與所述理論校驗值不同時,或接收到所述第一觸發(fā)信號時,生成反饋信號,并將所述反饋信號最終發(fā)送至所述上位機。
可選的,所述第一校驗單元包括:第一校驗電路以及理論校驗值寄存器,其中:所述第一校驗電路,與所述理論校驗值寄存器耦接,適于對所述理論校驗值進行所述第一校驗運算,并將得到的所述第一校驗結果與所述第一校驗值進行比較;當所述第一校驗結果與所述第一校驗值不相等時,向所述反饋信號生成電路發(fā)送所述第一觸發(fā)信號;所述理論校驗值寄存器,適于接收并保存上位機寫入的所述理論校驗值以及所述第一校驗值,并將存儲的數(shù)據(jù)更新為所述理論校驗值以及所述第一校驗值。
可選的,所述第一校驗電路為高低字節(jié)按位取反電路,所述第一校驗運算為高低字節(jié)按位取反運算。
可選的,所述第二校驗單元包括:第二校驗電路以及實際校驗值寄存器,其中:所述第二校驗電路,與所述芯片內部寄存器組耦接,適于對寫入所述寄存器組的所述配置數(shù)據(jù)進行校驗,生成所述實際校驗值并發(fā)送至所述實際校驗值寄存器;所述實際校驗值寄存器,與所述第二校驗電路耦接,適于在接收到所述實際校驗值之后,將存儲的數(shù)據(jù)更新為所述實際校驗值。
可選的,所述第二校驗電路為異或運算電路,適于對寫入所述寄存器組的所述配置數(shù)據(jù)與所述實際校驗值寄存器中存儲的數(shù)據(jù)進行異或運算,得到所述實際校驗值。
可選的,所述配置數(shù)據(jù)包括:待寫入數(shù)據(jù)及與其對應的寄存器的地址。
可選的,所述實際校驗值寄存器,還適于當接收到所述上位機發(fā)送的復位指令時,將存儲的數(shù)據(jù)更新為預設的初始校驗值。
可選的,所述反饋信號生成電路為中斷電路,所述反饋信號為中斷信號。
可選的,所述芯片內部寄存器的校驗電路還包括:低電壓檢測電路,與所述反饋信號生成電路耦接,適于檢測所述芯片的內部電壓,并在檢測到所述芯片的內部電壓小于預設電壓時,向所述反饋信號生成電路發(fā)送第二觸發(fā)信號;所述反饋信號生成電路,還適于在接收到所述第二觸發(fā)信號時,生成反饋信號并發(fā)送至所述上位機。
本發(fā)明實施例還提供了一種芯片,包括:寄存器組和外部通訊接口,以及上述任一種所述的芯片內部寄存器的校驗電路。
可選的,所述芯片還包括:引腳濾波電路,與所述芯片的引腳耦接,適于對所述芯片的引腳上的電平信號進行濾波處理。
與現(xiàn)有技術相比,本發(fā)明實施例的技術方案具有以下有益效果:
采用第一校驗單元對上位機輸入的理論校驗值進行校驗,從而可以校驗出上位機寫入過程中是否出現(xiàn)因外部干擾而導致的寫入錯誤的情況出現(xiàn)。采用第二校驗單元生成實際校驗值,通過比較電路將第一校驗單元中的理論校驗值與第二校驗單元中的實際校驗值進行校驗,當二者不同時,則可以判定在對芯片內部寄存器進行寫入操作時出現(xiàn)錯誤。由于校驗電路設置在芯片內部,因此無需上位機再將內部寄存器的寫入值讀取出來再進行比較,因此可以提高校驗效率。同時,校驗電路設置值在芯片內部,可以避免上位機讀取芯片內部寄存器的值時因外部干擾而導致讀取出錯,因此可以提高校驗結果可靠性。
進一步,在校驗電路中設置低電壓檢測電路,以對芯片的內部電壓進行檢測。當檢測到芯片的內部電壓小于一定值時,向反饋信號生成電路反饋第二觸發(fā)信號,使得反饋信號生成電路生成反饋信號并最終發(fā)送至上位機,可以提高上位機與芯片之間通信的可靠性。
此外,在芯片引腳處設置引腳濾波電路,對芯片引腳上的電平信號進行濾波處理,可以去除芯片引腳上的電平信號的毛刺和抖動,提高上位機與芯片之間通信的可靠性。
附圖說明
圖1是本發(fā)明實施例中的一種芯片內部寄存器的校驗電路的結構示意圖;
圖2是本發(fā)明實施例中的另一種芯片內部寄存器的校驗電路的結構示意圖;
圖3是本發(fā)明實施例中的一種芯片內部寄存器校驗系統(tǒng)的結構示意圖;
圖4是本發(fā)明實施例中的一種芯片內部寄存器的校驗電路的工作原理流程圖;
圖5是本發(fā)明實施例中的一種芯片的結構示意圖。
具體實施方式
在現(xiàn)有技術中,在完成向芯片內部寄存器的寫入操作之后,還需要對芯片內部寄存器的寫入值進行校驗。在對芯片內部寄存器寫入操作全部完成后,上位機通過芯片的外部通訊接口將芯片內部寄存器中的值讀出,并與寫入值進行一一比較,來校驗寫入時是否出現(xiàn)錯誤。然而,當芯片內配置的寄存器個數(shù)較多時,校驗時長較長,校驗效率較低。此外,上位機通過芯片的外部通訊接口將芯片內部寄存器的值讀取的過程中,同樣可能會受到外部干擾導致讀取出錯,因此校驗結果可靠性較差。
在本發(fā)明實施例中,采用第一校驗單元對上位機輸入的理論校驗值進行校驗,從而可以校驗出上位機寫入過程中是否出現(xiàn)因外部干擾而導致的寫入錯誤的情況出現(xiàn)。采用第二校驗單元生成實際校驗值,通過比較電路將第一校驗單元中的理論校驗值與第二校驗單元中的實際校驗值進行校驗,當二者不同時,則可以判定在對芯片內部寄存器進行寫入操作時出現(xiàn)錯誤。由于校驗電路設置在芯片內部,因此無需上位機再將內部寄存器的寫入值讀取出來再進行比較,因此可以提高校驗效率。同時,校驗電路設置值在芯片內部,可以避免上位機讀取芯片內部寄存器的值時,因外部干擾而導致讀取出錯,因此可以提高校驗結果可靠性。
為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結合附圖對本發(fā)明的具體實施例做詳細的說明。
參照圖1,本發(fā)明實施例提供了一種芯片內部寄存器的校驗電路10,包括:第一校驗單元11、第二校驗單元12、比較電路13以及反饋信號生成電路14。下面對本發(fā)明實施例提供的芯片內部寄存器的校驗電路10進行說明。
在具體實施中,第一校驗單元11,與上位機耦接,接收上位機寫入的理論校驗值以及第一校驗值,并對理論校驗值進行第一校驗運算,得到第一校驗結果。第一校驗單元11在得到第一校驗結果之后,將第一校驗結果與第一校驗值進行比較。其中,第一校驗值為上位機對理論校驗值進行第一校驗運算生成的校驗值。
若第一校驗結果與第一校驗值相等,則可以判定上位機在向第一校驗單元11寫入理論校驗值以及第一校驗值時,未受到外部環(huán)境的干擾;若第一校驗結果與第一校驗值不等,則可以判定上位機在向第一校驗單元11寫入理論校驗值以及第一校驗值時,可能受到外部環(huán)境的干擾,導致上位機向第一校驗單元11中寫入的數(shù)據(jù)出錯。當?shù)谝恍r灲Y果與第一校驗值不等時,第一校驗單元11可以向反饋信號生成電路14發(fā)送第一觸發(fā)信號。
在本發(fā)明實施例中,上位機可以通過芯片的外部通訊接口與芯片耦接,從而與芯片進行通信,以對芯片內部寄存器組進行數(shù)據(jù)寫入或讀取操作。例如,上位機通過外部通訊接口向芯片內部的第一校驗單元11寫入理論校驗值以及第一校驗值。
在本發(fā)明實施例中,上位機可以通過通用異步收發(fā)傳輸器(Universal Asynchronous Receiver Transmitter,UART)與芯片的外部通訊接口耦接,也可以通過通用串行總線(Universal Serial Bus,USB)與芯片的外部通訊接口耦接。上位機還可以通過UART、USB等轉接串行外設接口(Serial Peripheral Interface,SPI)電路,對芯片內部寄存器組進行數(shù)據(jù)寫入或讀取操作。上位機也可以通過UART、USB等轉接集成電路總線(Inter-Integrated Circuit,IIC)電路對芯片內部寄存器組進行數(shù)據(jù)寫入或讀取操作。
在具體實施中,第二校驗單元12,與芯片內部寄存器組耦接,對寫入到芯片內部寄存器組中的配置數(shù)據(jù)進行校驗,生成實際校驗值。
在本發(fā)明實施例中,第二校驗單元12從芯片內部寄存器組中讀取數(shù)據(jù)。當上位機向芯片內部寄存器組寫入配置數(shù)據(jù)后,第二校驗單元12對配置數(shù)據(jù)進行校驗,將生成的校驗值作為實際校驗值。
在具體實施中,比較電路13,與第一校驗單元11以及第二校驗單元12耦接,適于將第一校驗單元11中的理論校驗值與第二校驗單元12中的實際校驗值進行比較,并將得到的比較結果發(fā)送至反饋信號生成電路14。
在具體實施中,反饋信號生成電路14,在接收到比較電路13發(fā)送的比較結果時,若比較結果為實際校驗值與理論校驗值不相等,則生成反饋信號。此外,反饋信號生成電路14在接收到第一校驗單元11發(fā)送的第一觸發(fā)信號時,也可以生成反饋信號。在生成反饋信號后,反饋信號生成電路14可以將反饋信號最終發(fā)送至上位機。上位機在接收到反饋信號后,即可獲知上位機在向芯片內部寄存器組寫入數(shù)據(jù)時出現(xiàn)錯誤。
當接收到的比較結果為校驗成功時,反饋信號生成電路14可以保持當前狀態(tài)不變,也即無需生成反饋信號。
參照圖2,給出了本發(fā)明實施例中的另一種芯片內部寄存器的校驗電路10的結構示意圖。下面結合圖2,對本發(fā)明上述實施例中提供的芯片內部寄存器的校驗電路10進行說明。
在本發(fā)明實施例中,第一校驗單元11可以包括第一校驗電路111以及理論校驗值寄存器112,其中:
理論校驗值寄存器112可以與上位機耦接,適于接收并保存上位機寫入的理論校驗值以及對應的第一校驗值;
第一校驗電路111,與理論校驗值寄存器112耦接,適于對上位機寫入的理論校驗值進行第一校驗運算,并將得到的第一校驗結果與理論校驗值寄存器112中存儲的第一校驗值進行比較;當?shù)谝恍r灲Y果與第一校驗值不相等時,可以判定芯片在向理論校驗值寄存器112寫入理論校驗值以及第一校驗值時,可能受到外部環(huán)境的干擾,導致寫入數(shù)據(jù)出現(xiàn)錯誤。此時,第一校驗電路111向反饋信號生成電路14發(fā)送第一觸發(fā)信號。
在本發(fā)明實施例中,理論校驗值寄存器112在接收到上位機寫入的理論校驗值以及第一校驗值時,可以將之前存儲的數(shù)據(jù)刪除,也就是說,理論校驗值寄存器112中只存儲有上位機當前次寫入的理論校驗值以及第一校驗值。
例如,在當前次對芯片內部寄存器進行校驗之前,理論校驗值寄存器112中存儲的數(shù)據(jù)為上一次對芯片內部寄存器進行校驗時的理論校驗值A0以及對應的第一校驗值B0。在當前次對芯片內部寄存器進行校驗時,上位機生成理論校驗值A1以及對應的第一校驗值B1,并寫入至理論校驗值寄存器112。理論校驗值寄存器112將存儲的數(shù)據(jù)由A0和B0分別更新為A1以及B1。
在本發(fā)明實施例中,上位機可以對待寫入芯片內部寄存器的數(shù)據(jù)、與上述待寫入數(shù)據(jù)對應的寄存器的地址以及理論校驗值初值做異或運算,將得到的異或運算結果作為理論校驗值。之后,上位機對理論校驗值做第一校驗運算,得到理論校驗值對應的第一校驗值。
在實際應用中,理論校驗值初值可以為一個預先設定的初始校驗值,可以根據(jù)實際需要進行設定。例如,設定初始校驗值為R0。
在本發(fā)明實施例中,上位機對理論校驗值進行的第一校驗運算可以為高低字節(jié)按位取反運算。相應地,第一校驗單元11對理論校驗值進行高低字節(jié)按位取反運算。
例如,上位機對待寫入芯片內部寄存器的數(shù)據(jù)、待寫入數(shù)據(jù)對應的寄存器的地址以及理論校驗值進行異或運算,得到理論校驗值A1=0x55。之后,上位機對理論校驗值進行高低字節(jié)按位取反運算,得到第一校驗值B1=0x55AA。之后,上位機將理論校驗值A1以及第一校驗值B1寫入至理論校驗值寄存器112。
在實際應用中,上位機通過芯片的外部通訊接口對芯片內部寄存器進行寫入操作時,通常是以幀為單位進行寫入操作。每一個傳輸幀中,可以包括多個待寫入數(shù)據(jù)的寄存器的地址及對應的待寫入數(shù)據(jù)。
例如,在一個傳輸幀中,包括8個待寫入數(shù)據(jù)的寄存器的地址以及一一對應的待寫入數(shù)據(jù),8個待寫入數(shù)據(jù)的寄存器的地址依次為address_0、address_1……、address_7,對應的待寫入數(shù)據(jù)依次為data_0、data_1、……、data_7,初始校驗值為R0,則上位機生成的理論校驗值為Rn=R0xor address_0xor data_0xor address_1xor data_1……xor data_7,也就是說,上位機生成的理論校驗值是初始校驗值依次與待寫入數(shù)據(jù)的寄存器的地址以及對應的數(shù)據(jù)進行異或運算后得到。
在實際應用中,每一個寄存器的地址可能為7bit,而每一個寄存器地址對應的數(shù)據(jù)可能為8bit,二者位數(shù)不等,無法進行異或運算。此時,可以將每一個寄存器的地址擴展為8位,例如,在每一個寄存器的地址的第一位之前,添加一個bit位,該bit位的值為1。
例如,寄存器地址address_0對應的值為0001111,則擴展后的address_0對應的值為10001111。
可以理解的是,在本發(fā)明其他實施例中,第一校驗運算還可以是其他類型的校驗運算,此處不做贅述。
在實際應用中,配置數(shù)據(jù)中的待寫入數(shù)據(jù)的寄存器的個數(shù)可以根據(jù)實際需要進行調整,相應地,對應的寫入到寄存器中的數(shù)據(jù)也可以做調整。在進行調整時,上位機需要重新生成理論校驗值。
此時,上位機可以將調整后的寄存器的地址及對應的待寫入數(shù)據(jù)以及理論校驗值寄存器112中的數(shù)據(jù)進行異或運算,得到新的理論校驗值。
在本發(fā)明實施例中,第二校驗單元12可以包括第二校驗電路121以及實際校驗值寄存器122。
第二校驗電路121,可以與芯片內部寄存器組耦接,從芯片內部寄存器組中讀取出上位機寫入的配置數(shù)據(jù),并對配置數(shù)據(jù)進行校驗,得到的結果作為實際校驗值并發(fā)送至實際校驗值寄存器122。
實際校驗值寄存器122,與第二校驗電路121耦接,在接收到第二校驗電路121發(fā)送的實際校驗值之后,將之前存儲的數(shù)據(jù)更新為實際校驗值。
在本發(fā)明實施例中,第二校驗電路121可以為異或運算電路。第二校驗電路121可以將寫入寄存器組的配置數(shù)據(jù)以實際校驗值初值進行異或運算,得到的異或運算結果即為實際校驗值。在得到實際校驗值之后,第二校驗電路121將得到的實際校驗值發(fā)送至實際校驗值寄存器122。實際校驗值寄存器122在接收到實際校驗值之后,將存儲的數(shù)據(jù)更新為當前接收到的實際校驗值。
需要說明的是,本發(fā)明實施例中所述的實際校驗值初值與理論校驗值初值相等,為同一個預先設定的初始校驗值。
在本發(fā)明實施例中,寫入寄存器組的配置數(shù)據(jù)中,可以包括待寫入數(shù)據(jù)、以及與待寫入數(shù)據(jù)對應的寄存器的地址。例如,待寫入數(shù)據(jù)對應的寄存器地址分別為address_1、address_2,地址為address_1的寄存器對應的待寫入數(shù)據(jù)為00001111,地址為address_2的寄存器對應的待寫入數(shù)據(jù)為11110000,則配置數(shù)據(jù)包括:待寫入數(shù)據(jù)00001111以及對應的寄存器地址address_1、待寫入數(shù)據(jù)11110000以及對應的寄存器地址address_2。
在實際應用中,在一個傳輸幀中,包括8個寄存器的地址以及一一對應的數(shù)據(jù),8個寄存器的地址依次為address_0、address_1……、address_7,對應的數(shù)據(jù)依次為data_0、data_1、……、data_7,初始校驗值為R0。
與上位機生成理論校驗值相似,第二校驗電路121在生成實際校驗值時,得到的實際校驗值Rr=R0xor address_0xor data_0xor address_1xor data_1……xor data_7。
在本發(fā)明實施例中,比較電路13分別與第一校驗單元11中的理論校驗值寄存器112以及第二校驗單元12中的實際校驗值寄存器122耦接,從而可以從理論校驗值寄存器112中讀取理論校驗值,從實際校驗值寄存器122中讀取實際校驗值。
在讀取出理論校驗值以及實際校驗值之后,比較電路13可以對二者進行比較。當二者相等時,比較電路13可以向反饋信號生成電路14發(fā)送校驗成功的比較結果;當二者不相等時,比較電路13可以向反饋信號生成電路14發(fā)送校驗失敗的比較結果。
在本發(fā)明實施例中,反饋信號生成電路14可以為中斷電路。中斷電路在接收到的比較結果為實際校驗值與理論校驗值不同時,或接收到第一觸發(fā)信號時,生成中斷信號并最終發(fā)送至上位機。
在本發(fā)明實施例中,在首次對芯片內部寄存器進行校驗時,上位機可以向實際校驗值寄存器122發(fā)送復位指令。實際校驗值寄存器122在接收到復位指令后,將存儲的數(shù)據(jù)更新為預設的初始校驗值R0。
之后,上位機從實際校驗值寄存器122中讀取存儲的數(shù)據(jù),并判斷實際校驗值寄存器122中當前存儲的數(shù)據(jù)是否為R0。若上位機從實際校驗值寄存器122中讀取到的數(shù)據(jù)為R0,則可以執(zhí)行后續(xù)的校驗流程;若上位機從實際校驗值寄存器122中讀取到的數(shù)據(jù)不等于R0,則可以判定上位機從實際校驗值寄存器122中讀取的數(shù)據(jù)是錯誤的。在實際應用中,導致上位機讀取數(shù)據(jù)錯誤的原因可能是芯片供電電壓異常,也可能是通訊引腳連接錯誤等,此時,無法繼續(xù)對芯片內部寄存器進行校驗。
在本發(fā)明實施例中,在芯片內部寄存器的校驗電路10中,還可以設置有低電壓檢測電路(圖1中未示出)。所述低電壓檢測電路與反饋信號生成電路耦接,適于對芯片的內部電壓進行檢測。
在實際應用中可知,當芯片的內部電壓小于預設電壓時,可以判定芯片失壓,芯片可能無法與上位機進行正常通信,導致校驗流程無法正常進行。因此,當?shù)碗妷簷z測電路檢測到芯片的內部電壓小于預設電壓時,可以向反饋信號生成電路發(fā)送第二觸發(fā)信號。反饋信號生成電路在接收到第二觸發(fā)信號時,可以生成反饋信號并通過芯片的外部通訊接口發(fā)送至上位機。上位機在接收到反饋信號后,即可獲知當前上位機寫入芯片內部寄存器組的配置數(shù)據(jù)校驗失敗。
下面對本發(fā)明上述實施例中提供的芯片內部寄存器的校驗電路10的具體工作原理及流程進行說明。
參照圖3,給出了本發(fā)明實施例中的一種芯片內部寄存器校驗系統(tǒng)的結構示意圖。圖3中,上位機30通過芯片20的外部通訊接口31與芯片進行通信。在芯片20中,寄存器組32中包括N+1個寄存器,編號依次為0、1、……、N。
參照圖4,給出了本發(fā)明實施例中的一種芯片內部寄存器的校驗電路10的工作原理流程圖。
下面結合圖3及圖4,對芯片內部寄存器的校驗電路10的具體工作原理及流程進行說明。
步驟S401,上位機向實際校驗值寄存器發(fā)送復位指令。
在首次對芯片內部寄存器進行校驗時,上位機30先通過芯片20的外部通訊接口31向實際校驗值寄存器122發(fā)送復位指令。實際校驗值寄存器122在接收到復位指令后,將存儲的數(shù)據(jù)更新為初始校驗值R0。
步驟S402,上位機讀取實際校驗值寄存器中的數(shù)據(jù)。
在本發(fā)明實施例中,上位機30通過芯片20的外部通訊接口31從實際校驗值寄存器122中讀取數(shù)據(jù)。
步驟S403,上位機判斷讀取出的實際校驗值寄存器中的數(shù)據(jù)是否為R0。
在本發(fā)明實施例中,當上位機30讀取出的實際校驗值寄存器122中的數(shù)據(jù)為R0時,可以執(zhí)行步驟S404;否則,當上位機30讀取出的實際校驗值寄存器122中的數(shù)據(jù)不是R0時,可以結束校驗流程,并提醒用戶檢查當前上位機與芯片20的通訊是否正常。
步驟S404,上位機計算理論校驗值以及第一校驗值,并寫入至理論校驗值寄存器。
在本發(fā)明實施例中,上位機30將待寫入芯片內部寄存器的數(shù)據(jù)、與上述待寫入數(shù)據(jù)對應的寄存器的地址以及R0進行異或運算,將得到的異或運算結果作為理論校驗值。上位機30對理論校驗值進行高低字節(jié)按位取反運算,將得到的結果作為第一校驗值。之后,上位機30將理論校驗值以及第一校驗值寫入至理論校驗值寄存器112。
步驟S405,第一校驗電路校驗第一校驗結果與第一校驗值是否相等。
在本發(fā)明實施例中,第一校驗電路111從理論校驗值寄存器112中讀取理論校驗值,將理論校驗值進行高低字節(jié)按位取反運算,得到第一校驗結果。第一校驗電路111將第一校驗結果與理論校驗值寄存器112中的第一校驗值進行比較。
當?shù)谝恍r灲Y果與第一校驗值相等時,執(zhí)行步驟S406;否則,當?shù)谝恍r灲Y果與第一校驗值不等時,執(zhí)行步驟S409。
通過第一校驗電路111對上位機30寫入到理論校驗值寄存器112中的理論校驗值進行校驗,可以避免上位機30在向理論校驗值寄存器112的寫入過程中,因受到干擾而導致理論校驗值寄存器112中寫入的理論校驗值以及第一校驗值出現(xiàn)錯誤,進而可以避免因寫入的理論校驗值及第一校驗值出現(xiàn)錯誤而導致校驗結果的誤判。
步驟S406,上位機向寄存器組中寫入配置數(shù)據(jù)。
在本發(fā)明實施例中,上位機30向寄存器組中寫入配置數(shù)據(jù),具體是:向待寫入數(shù)據(jù)的寄存器地址中,寫入對應的數(shù)據(jù)。例如,向寄存器地址為address_1的寄存器寫入數(shù)據(jù)00001111,向寄存器地址為address_2的寄存器寫入數(shù)據(jù)11110000。配置數(shù)據(jù)包括:待寫入數(shù)據(jù)00001111以及對應的寄存器地址address_1、待寫入數(shù)據(jù)11110000以及對應的寄存器地址address_2。
步驟S407,第二校驗電路對配置數(shù)據(jù)進行異或運算,并將異或運算結果發(fā)送至實際校驗值寄存器。
在本發(fā)明實施例中,第二校驗電路121從寄存器組32中讀取配置數(shù)據(jù)。由于實際校驗值寄存器122已經復位,因此實際校驗值寄存器122中存儲的數(shù)據(jù)為R0。第二校驗電路121將配置數(shù)據(jù)與R0進行異或運算,得到的結果作為實際校驗值,并將實際校驗值發(fā)送至實際校驗值寄存器122。
步驟S408,比較電路判斷理論校驗值與實際校驗值是否相等。
在本發(fā)明實施例中,比較電路13可以從理論校驗值寄存器112中讀取理論校驗值,從實際校驗值寄存器122中讀取實際校驗值。比較電路13在獲取到實際校驗值以及理論校驗值之后,將二者進行比較。
當理論校驗值與實際校驗值不相等時,執(zhí)行步驟S409;當理論校驗值與實際校驗值相等時,執(zhí)行步驟S410。
步驟S409,反饋信號生成電路生成反饋信號并通過外部通訊接口發(fā)送至上位機。
上位機30在接收到反饋信號生成電路14生成的反饋信號后,即可獲知當前校驗失敗。
步驟S410,上位機判斷是否需要繼續(xù)向寄存器組寫入配置數(shù)據(jù)。
若上位機30仍需要向寄存器組32寫入配置數(shù)據(jù),則可以重新執(zhí)行步驟S404;若寫入配置數(shù)據(jù)操作已經完成,則可以退出校驗流程。
參照圖5,給出了本發(fā)明實施例中的一種芯片,所述芯片包括:寄存器組51、外部通訊接口53以及芯片內部寄存器的校驗電路52。
在具體實施中,上位機可以通過外部通訊接口53向寄存器組51寫入數(shù)據(jù),芯片內部寄存器的校驗電路52可以對寫入到寄存器組51中的數(shù)據(jù)進行校驗。
在本發(fā)明實施例中,芯片內部寄存器或寄存器組包括只讀寄存器,只讀寄存器的寫入值由上位機直接判斷生成。
在本發(fā)明實施例中,所述芯片中還可以包括引腳濾波電路(圖5中未示出),引腳濾波電路可以與芯片的所有的引腳耦接,對芯片的引腳上的電平信號進行濾波處理,從而可以濾波芯片的引腳上的電平信號的毛刺、抖動等干擾,提高上位機與芯片之間通信的可靠性。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領域技術人員,在不脫離本發(fā)明的精神和范圍內,均可作各種更動與修改,因此本發(fā)明的保護范圍應當以權利要求所限定的范圍為準。