基于虛擬存儲器的USB下載線設計
在圖2中,PDIUSBDl2的數(shù)據(jù)端口連接到單片機的P0端口,實現(xiàn)單片機與PDIUSBDl2的數(shù)據(jù)交換通道。將PDIUSBDl2的讀寫控制分別接到P3.6和P3.7引腳,實現(xiàn)單片機寫入和讀出PDIUSBDl2的數(shù)據(jù)。地址端A0接到P2.O引腳上,用于實現(xiàn)對PDIUSBDl2的數(shù)據(jù)和地址選擇。PDIUSB Dl2從CLKOUT輸出時鐘信號,連接到單片機AT89S52的XTAL1上,作為單片機的時鐘信號。
下載線接口驅動電路74HC244采用P2的部分引腳進行控制。其中,P2.1接74HC244的門控端,輸出低電平時電路工作,在平時輸出高電平時使74HC244工作在高阻狀態(tài),使下載線與目標單片機脫離連接。P2.2接2Y4通過下載線接口作為SCK,實現(xiàn)ISP接口的同步脈沖。P2.3通過74HC244后接到下載線接口作為MOSI,實現(xiàn)對目標芯片的串行數(shù)據(jù)讀出。下載線接口的MISO通過74HC244驅動后接到P2.5,實現(xiàn)對目標芯片的串行數(shù)據(jù)的讀出。P2.5通過74HC244控制目標芯片的RESET引腳,使其進入和退出串行程序下載模式。
另外,在系統(tǒng)中保留了P3.O和P3.1作為異步串行通信端口,作為系統(tǒng)調試端口。P1.5,P1.6,P1.7和RESET與VCC,GND連接到系統(tǒng)控制芯片,作為系統(tǒng)控制芯片自身的程序寫入接口。
2 軟件系統(tǒng)設計
2.1 系統(tǒng)架構
基于虛擬內(nèi)存的USB下載線,就是從計算機角度看,下載線與目標單片機是計算機的一個通用的USB存儲器,在對目標單片機程序進行寫操作時,就像對磁盤(U盤)進行寫操作一樣。
在PC機端主要完成的任務是USB設備驅動程序,即將USB設備(下載線)識別為U盤,實現(xiàn)文件的寫入和讀出操作。在Windows 2000及以后的操作系統(tǒng)中,將USB磁盤驅動作為標準驅動程序,直接利用操作系統(tǒng)磁盤驅動程序。文件的寫入和讀出,由操作系統(tǒng)完成相關功能,在本系統(tǒng)中不需要編寫程序。
下載線與計算機連接采用PDIUSBD12作為接口芯片,要與計算機交換數(shù)據(jù),就需要對PDIUSBDl2芯片進行操作,下載線系統(tǒng)需要PDIUSBDl2驅動程序。要向計算機說明下載線是一個U盤,下載線系統(tǒng)需要在計算機硬件詢問時要按USB Disk應答,下載線系統(tǒng)還需要構建一個文件系統(tǒng),由于下載線系統(tǒng)是面向單片機的程序下載,數(shù)據(jù)量小,采用FAT12作為下載線的文件系統(tǒng)。
當下載線接收到計算機傳送過來的一個程序文件時,需要將程序文件中的內(nèi)容分離出來。設計本系統(tǒng)主要支持bin和HEX兩種格式,其中bin文件就是機器指令的數(shù)據(jù),直接寫入單片機的程序存儲器中即可完成程序下載;Hex文件的INTEL格式是Intel公司提出的按地址排列的數(shù)據(jù)信息,并不是直接的機器指令代碼,因此還需要將HEX格式轉換為bin格式。
在對目標單片機進行程序下載時,需要按照目標單片機的程序下載時序,逐次將數(shù)據(jù)寫入目標單片機的程序存儲器中,下載系統(tǒng)需要控制下載接口電路實現(xiàn)程序時序。整個硬件電路結構與軟件關系如圖3所示。本文引用地址:http://butianyuan.cn/article/202506.htm
評論