本發明涉及一種單片機與內置存儲器的通訊方法,即對該數據存儲器進行數據讀、寫、擦的操作方法。
背景技術:
在控制、測試等許多技術領域,單片機都有著廣泛的應用,以單片機作為微控制器的工作系統中,數據的存儲是單片機應用中的關鍵,尤其是要長時間存儲數據或是要存儲較大量數據時,對單片機和數據存儲器之間的通訊速度及安全會有很高的要求。
傳統單片機與單片機外接數據存儲器之間通訊的方式有二種,一是采用內部集成電路i2c總線,二是并行的方式。i2c總線支持多主控,但在任何時間點上只能有一個主控,其數據傳輸方式對于時序要求較高,速度較慢,對于單片機的運算器alu和端口占用時間較長。采用并行數據傳輸方式則對于單片機的資源占用較多,數據線、地址線等都需要單片機的端口進行控制。
為解決傳統單片機的上述缺陷,本技術人提出了一種如圖1所示改進了的單片機,稱之為嵌有獨立非易失數據存儲器的單片機,其包括運算器alu及通過內部總線連接的隨機存取存儲器ram和程序存儲器,此外,還內嵌有相對所述程序存儲器獨立的非易失數據存儲器,該非易失數據存儲器通過內部總線與運算器alu連接,在嵌有獨立非易失數據存儲器的單片機內設置有一個控制讀寄存器ispenr、一個控制擦寫寄存器ispcon、一個模式選擇寄存器ispmod、二個地址寄存器ispah、ispal及數據寄存器ispda。
技術實現要素:
本發明的主要目的,是提供一種單片機與內置存儲器的通訊方法,即嵌有獨立非易失數據存儲器的單片機對內嵌的數據存儲器進行數據讀、寫、擦的操作方法。
為此,本發明提供的單片機與內置存儲器的通訊方法,包括啟動在線讀、寫功能步驟,選擇對內置存儲器的操作式步驟,最后完成與內置存儲器的通訊,即完成對數據的讀、寫、擦。
由以上方案可見,本發明使得如圖1所示包括運算器alu、隨機存取存儲器ram、程序存儲器及內嵌獨立非易失性數據存儲器的單片機在不同的時鐘頻率下,與內嵌獨立非易失性數據存儲器得到相同的通訊速度。
具體的方案是,啟動在線讀功能包括向控制讀寄存器寫入特定數據a1,啟動在線寫功能包括向控制寫寄存器寫入特定數據a2。只有特定數據正確才能進行對數據存儲器的下一步的操作,對控制讀寄存器ispenr寫入的數據不是a1時,控制擦寫寄存器ispcon的寫功能被禁止。
更具體的方案是,向控制讀寄存器ispenr寫入特定數據a1之后,緊接著再向控制讀寄存器寫入特定數據a3。只有對控制讀寄存器ispenr寫入的數據依次是a1、a3時,控制擦寫寄存器ispcon的寫功能才不被禁止。
附圖說明
圖1是嵌有獨立非易失數據存儲器的單片機的結構示意圖;
圖2是本發明的原理框圖;
具體實施方式
本發明的工作原理參見圖2,初始化后,啟動系統內部程序isp(insystemprogram),依次向控制讀寄存器ispenr、控制擦寫寄存器ispcon寫入特定數據后,進入寫、讀或擦模式。進入寫模式后,即可寫入目標地址、目標數據,然后在控制擦寫寄存器ispcon中寫入響應操作碼完成寫操作并關閉寫模式;進入讀模式后,即可寫入目標地址,然后在數據寄存器ispda中讀出數據存儲器中的數據;進入擦模式后,即可寫入目標地址,然后在控制擦寫寄存器ispcon中寫入響應操作碼完成擦操作,并關閉擦模式。
本發明實施例可以通過圖2給出的流程圖加以說明,參見圖2,isp模式子程序啟動后,進入s1:向控制讀寄存器ispenr寫入一個特定數據a1,如寫入的非該特定數據a1則返回,如寫入的是該特定數據a1,則進入s2:向控制讀寄存器ispenr寫入一個特定數據a2,如寫入的非該特定數據a2則返回,如寫入的是該特定數據a2,則進入s3:向控制擦寫寄存器ispcon寫入一個特定數據a3,如寫入的非該特定數據a3則返回,如寫入的是該特定數據a3,則進入s4:向模式選擇寄存器ispmod寫入一個特定數據a4,如寫入的是該特定數據a4則進入寫模式,如寫入的非該特定數據a4,則進入s5:向模式選擇寄存器ispmod寫入一個特定數據a5,如寫入的是該特定數據a5則進入讀模式,如寫入的非該特定數據a5,則進入s6:向模式選擇寄存器ispmod寫入一個特定數據a6,如寫入的是該特定數據a6則進入擦模式,如寫入的非該特定數據a4,則返回進行s4。寫、擦模式完成后,如前述在控制擦寫寄存器ispcon中寫入響應操作碼并關閉。