首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

请问关于USB转串口主机端的几个小问题

2012-03-16 
请教关于USB转串口主机端的几个问题最近在做一个USB读卡器的项目,读卡器端已经完成了,用的STM32,根据客户

请教关于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上捕捉到的细节,记下都是对哪个端口操作的。

如果捕捉到的信息有你能用上的,试着用自己的代码复现。
[解决办法]

探讨
我一开始就是用5楼说的方法试验的,用BusHound捕获到的只是DI和DO的数据。而且在STM32中我把中断信息都输出了,没有什么特别的地方。

热点排行