正在加载图片...
广州周立功单片机发展有限公司Tel:(020)38730916387309173873097638730977Fax:38730925 次被任务2接收到 USB主机 PDIUSBD12设备端 匚发送命令0xD2 [任务2 TaskRec2就绪 接收任务1的应答4 匚任务2发应答字0x01 [收任的应容]-4--任容0m 发送1024个子节 →>「任务1接收1024个字节 匚发送1024个字节------>[任务2接收1024个字节 接收1024个子节4------任务1或任务2发送1024个字节 接收个字节4-8---[任务或任务2发送24个子节 图5USB主机程序与 PDIUSBD12设备端程序的关系 图5的7和8,由于任务1收完1024个字节以后,延时了1个时钟周期,导致任务 或任务2谁先占用发送端点具有不确定性。这时,我们就可以看出两个任务争用端点的效果 为了方便用户使用D12PACK,我们提供了PC机端的 PDIUSBD12的驱动程序,驱动 程序在“DⅠ2驱动”目录下,请根据你的PC机使用的操作系统选择安装不同的驱动程序。 对于端点1和端点2的读写,我们提供了 EasyUSE.dl动态库,该动态库在“ EasyUSB 目录下,动态库的使用方法请见“ EasyUSB"”日录下的“ EasyUSB动态库使用指南 EasyUSB_pdf”文件。 PDIUSBD2设备端驱动程序提供的API函数与PC机端 EasyUSB dll动态库提供的函 数的对应关系如表12所示。表中每一行的两个函数是发送与接收的关系 表12设备端与主机端函数对应表 PDIUSBD2设备端驱动程序API函数 PC机主机端 Easy USB. dll int Write int pipenum, unsigned char *sendbuffer, INT8U ReadPortI(NT32U len, INTSU*recbuff, int len, int wartime=1) INT16U timeout) plenum取值为1 INT8U ReadPort2(INT32U len, INT8Urecbufr int Write Data(int pipenum, unsigned char*sendbuffer, int len, int waittime=1); INT16U timeout) plenum取值为3 int ReadData( int pipenum, unsigned charrecbuffer, INT8U Write PortI(NT32U len, INTSU *sendbuff int len, int wartime=-1) INT16U timeout) pipes取值为0 INT&U WritePort2(NT32U len, INTSU *sendbuff int Read Data(int pipenum, unsigned char *recbuffer int len, int wartime=-1) NT16U timeout) 取值为2 注意: EasyUSB.dl各函数的参数|en不得超过1024,PD|UsBD12设备端各函数的参数len无此限制广州周立功单片机发展有限公司 Tel: (020) 38730916 38730917 38730976 38730977 Fax: 38730925 次被任务 2 接收到。 发送命令0x01 发送命令0x02 任务1TaskRec1就绪 任务2 TaskRec2就绪 接收任务1的应答 任务2发应答字0x01 接收任务2的应答 任务2发应答字0x02 发送1024个字节 任务1接收1024个字节 发送1024个字节 任务2接收1024个字节 接收1024个字节 任务1或任务2发送1024个字节 接收1024个字节 任务1或任务2发送1024个字节 USB主机 PDIUSBD12设备端 1 2 3 4 5 6 7 8 图 5 USB 主机程序与 PDIUSBD12 设备端程序的关系 图 5 的 7 和 8,由于任务 1 收完 1024 个字节以后,延时了 1 个时钟周期, 导致任务 1 或任务 2 谁先占用发送端点具有不确定性。这时,我们就可以看出两个任务争用端点的效果 了。 为了方便用户使用 D12 PACK,我们提供了 PC 机端的 PDIUSBD12 的驱动程序,驱动 程序在“D12 驱动”目录下,请根据你的 PC 机使用的操作系统选择安装不同的驱动程序。 对于端点 1 和端点 2 的读写,我们提供了 EasyUSB.dll 动态库,该动态库在“EasyUSB” 目录下,动态库的使用方法请见“EasyUSB”目录下的“EasyUSB 动态库使用指南 _EasyUSB_.pdf”文件。 PDIUSBD12 设备端驱动程序提供的 API 函数与 PC 机端 EasyUSB.dll 动态库提供的函 数的对应关系如表 12 所示。表中每一行的两个函数是发送与接收的关系。 表 12 设备端与主机端函数对应表 PDIUSBD12 设备端驱动程序 API 函数 PC 机主机端 EasyUSB.dll INT8U ReadPort1(INT32U len,INT8U *recbuff, INT16U timeout) int WriteData(int pipenum,unsigned char *sendbuffer, int len,int waittime=-1); pipenum 取值为 1 INT8U ReadPort2(INT32U len,INT8U *recbuff, INT16U timeout) int WriteData(int pipenum,unsigned char *sendbuffer, int len,int waittime=-1); pipenum 取值为 3 INT8U WritePort1(INT32U len,INT8U *sendbuff, INT16U timeout) int ReadData(int pipenum,unsigned char *recbuffer, int len,int waittime=-1); pipenum 取值为 0 INT8U WritePort2(INT32U len,INT8U *sendbuff, INT16U timeout) int ReadData(int pipenum,unsigned char *recbuffer, int len,int waittime=-1); pipenum 取值为 2 注意:EasyUSB.dll 各函数的参数 len 不得超过 1024, PDIUSBD12 设备端各函数的参数 len 无此限制。 - 10 -
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有