新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于CY7C646xx的通用串行總線接口

基于CY7C646xx的通用串行總線接口

作者: 時間:2012-04-11 來源:網(wǎng)絡(luò) 收藏

該應(yīng)用采用Keil51編譯環(huán)境,用C語言完成固件源代碼的編寫。采用標準的結(jié)構(gòu)框架,修改或者添加自己的代碼,完成所需要的任務(wù)。

需要注意,如果開發(fā)者沒有使用片外接存儲器,需將Keil51編譯環(huán)境的L51 Location選項中的Code(指令碼部分)始于0x0080,而且xdata(數(shù)據(jù)部分)始于0xl000,以保證在同一個RAM中指令代碼和數(shù)據(jù)不混迭。

6 計算機端應(yīng)用程序的編寫

應(yīng)用程序與設(shè)備進行通信的通用函數(shù)包括打開關(guān)閉設(shè)備、傳輸數(shù)據(jù)等:

6.1 打開和關(guān)閉設(shè)備

該應(yīng)用程序基于Ezusb.sys驅(qū)動程序,利用VisualC++針對該電路進行操作,完成數(shù)據(jù)的傳輸。

打開設(shè)備: HANDLE hDevice=CreateFile (DeviceName,
GENERIC_WRITEIGENERIC_READ,F(xiàn)ILE_SHARE_WRITE︱FILE_SHARE_READ,
NULL,OPEN_EXISTING,0,NULL);

程序打開設(shè)備"DeviceName''的方式為通用讀寫方式,文件共享讀寫。

關(guān)閉設(shè)備:CloseHandle (hDevice)。

6.2 數(shù)據(jù)傳輸

其代碼為BOOL bResult = DeviceloControl (hDevice,direction,Control,sizeof xxxx_TRANSFER_CONTROL),buffer,length, (unsigned long*)nBytes,NULL),其中,hDevice為設(shè)備句柄;direction為數(shù)據(jù)傳輸?shù)姆较?;Control為4種USB數(shù)據(jù)傳輸?shù)姆绞竭x擇;size(xxxx_TRANSFER_CONTROL)為數(shù)據(jù)格式所需存儲空間的大?。籦uffer為所傳輸數(shù)據(jù)的緩沖區(qū)地址指針;nBytes為傳輸完成后實際傳輸?shù)臄?shù)據(jù)個數(shù):數(shù)據(jù)傳輸格式為USB設(shè)備的統(tǒng)一規(guī)范,可參照Windows DDK中的相應(yīng)文件。

基于CY7C646xx的通用串行總線接口

6.3 數(shù)據(jù)傳輸?shù)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/通信協(xié)議">通信協(xié)議

每個數(shù)據(jù)包由包頭和數(shù)據(jù)或者只由包頭組成,最大的數(shù)據(jù)長度為64字節(jié),由于本應(yīng)用所采用的該系列的80引腳的CY7C64603沒有"數(shù)據(jù)空"對外標志,所以,外部電路讀寫邏輯每次瀆寫64字節(jié)。傳輸?shù)淖止?jié)不足64時由固件補零:·數(shù)據(jù)包格式如圖3所示。


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉