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