请教关于USB转串口主机端的几个问题
最近在做一个USB读卡器的项目,读卡器端已经完成了,用的STM32,根据客户要求,读卡器做成了USB转串口,连到电脑上已经没问题了。这套设备还有一个控制板,要求控制板能直接接读卡器,即读卡器即可以接在电脑上也可以接在控制板上。控制板我采用LPC2468,没用操作系统,裸奔的。现在正在做USB转串口主机端程序,遇到了几个问题,想请教一下各位大虾:
(1). USB转串口中配置了一个中断IN端点(我这里是IN1),按我的理解,这个中断端点应该是查询设备端的状态的,但我不明白主机端是怎么使用这个端点的。因为在设备端这个端点只是在配置描述符中存在,在中断程序中根本不用处理这个端点的信息。
(2). USB转串口枚举完成并配置完波特率等信息后,在批量端点(我这里是IN2和OUT2)是否可以直接读写。我试了一下,直接在批量端点上发起传输,读卡器端没反应。
(3). 哪位大虾清楚USB转串口数据通信过程给解释下,谢谢!
[解决办法]
LZ如果自己实现USB底层驱动,在MCU上实现有点复杂。
当然如果得到USB串口供应商技术支持,得到原驱动代码,开发起来是很容易的。否则。就要自己亲自了解底层驱动。当然可以用MDK等软件,做个框架,自己根据实际需要变动也是可以的。
[解决办法]
我没时间去实验,不知有几个简单的测试方法LZ是否试过。
打开BusHound,监视STM32 CDC设备的数据流,因为测试对象是枚举成功过后的行为,所以BusHound不会漏掉关键信息。
找出STM32对应的串口号,运行一个串口测试软件。打开/关闭STM32串口,更改STM32串口的波特率,收发一串数据(假设你已经修正了原范例中一次只能发一个字节的缺陷)。看看上面的操作在BusHound上捕捉到的细节,记下都是对哪个端口操作的。
如果捕捉到的信息有你能用上的,试着用自己的代码复现。
[解决办法]