3.3 USB控製端點通信建立初始化程序
參考Philips公司PDIUSBD12數據手冊,PDIUSBD12的命令字分為三種:初始化命令字、數據流命令字和通用命令字,FPGA先給PDIUSBD12的命令地址發命令,根據不同命令的要求再發送或讀出不同的數據。因此,可以將每種命令做成函數,用函數實現各個命令,以後直接調用相關函數即可。FPGA內部USB控製端點與PDIUSBD12通信初始化程序清單:
constant D12_CONNECT_DATA: REG8x8:= //配置命令和數據
( D12_COMMAND_SET_DMA, //設置DMA命令
D12_DMA, &nbs p; //發送命令數據
D12_COMMAND_SET_MODE, //發送設置模式命令
D12_MODE_CONFIG, //發送模式設置
D12_MODE_CLOCK_DIV, //發送分頻率模式
others => X"00" );
constant D12_CONNECT_DATA_TYPE: REG8x1:= //命令、數據執行順序
( D12_COMMAND,
D12_DATA, //發送數據
D12_COMMAND,
D12_DATA, //發送數據
others => '0' );
constant D12_CONNECT_DATA_LENGTH: INTEGER8 := 5; //配置參數總長度
constant D12_EP0_ACK_DATA: REG8x8:= //配置0斷點命令
( D12_COMMAND_SEL_EP0_OUT, &nb sp; //發送0斷點選擇
D12_COMMAND_ACK_SETUP, //確認建立
D12_COMMAND_CLEAR_EP_BUFFER, //清寄存器
D12_COMMAND_SEL_EP0_IN, //接收0斷點選擇
D12_COMMAND_ACK_SETUP, //確認建立
others => X"00" );
constant D12_EP0_ACK_DATA_LENGTH: INTEGER8 := 5; //配置0斷點總長度
constant ep0_ack_data: REG8x8 := D12_EP0_ACK_DATA; //發送0斷點數據

本文相關DataSheet:
4、 結語
基於FPGA的測試係統充分利用固件編程調試靈活,開發成本低,片上資源豐富等優勢,能方便的實現多組輸入模擬量的擴展。可實現對單體電壓0~15V、整組電壓0~500V,電壓測量精度:±0.5%;溫度測量範圍:-20℃~+80℃;內阻測試範圍:0~99mΩ等高精度的參數測量。
參考文獻:
[1]. 劉韜、樓興華 FPGA數字電子係統設計與開發實例導航[M] 人民郵電出版社 2005.6,210-230
[2]. 周誌敏、周紀海 閥控式密封鉛酸蓄電池實用技術[M] 中國電力出版社 2004.10,97-109
[3]. 萬利峰 基於PDIUSBD12的USB數據采集係統的設計[J] 微計算機信息 2006.5-1,110-112
[4]. 周勝海 集成多路模擬開關的應用技巧[J] 電子技術應用 2005.7,79-80
[5]. PDIUSBD12 USB Interface Device datasheet Ver.08 Philips Co., 2001