CH375与中断传输

发表于:2008-3-24 11:26:00,来源于:58.39.48.34 发贴心情:
-----------------------------------------------------------------------------------------------------
CH375用作HOST,连HID类的设备,条码扫描枪,利用论坛提供的例程,基本上实现了功能。
现在有几个问题:
1)例程中设定CH375工作在低速模式,用的是
CH375_WR_CMD_PORT(0x0b);    /* 切换使375B进入低速模式 */
CH375_WR_DAT_PORT(0x17);
CH375_WR_DAT_PORT(0xd8);
是不是只针对CH375B,我用CH375A是该命令总是失败。看到CH375数据手册版本3D上有一条SET_USB_SPEED命令,试了一下,可以
CH375_WR_CMD_PORT(0x04);    /* 切换使375B进入低速模式 */
CH375_WR_DAT_PORT(0x01);
不知该命令对那些版本的CH375有效。

2)设备有一个中断In端点用来传输数据。我发现例程中,在完成设备的枚举和设置之后,发送In令牌启动了中断传输,以后单片机在收到CH375读取数据成功的中断后,再发送IN令牌获取下一次的数据。我的问题是:
中断传输应该是USB Host以一定的速度发送In令牌读取数据,CH375的手册上也说明支持中断传输,可是In令牌发送的频率是怎么决定的?按理说端点描述符中有相关的说明,可CH375是怎么知道这个频率的?好像没有针对这个设置CH375的命令。CH375怎么知道In令牌是发送到中断端点还是批量端点,也就是说CH375怎么知道单片机设置的IN令牌是要进行中断传输呢?USB刚接触,还望高手不吝赐教。

 
-----------------------------------------------------------------------------------------------------
这人很懒,什么都没留下
回  复 [24145]
Re:CH375与中断传输
1
普通用户
SCM { M }
等级:20
发表:0   回复:2480
注册时间:2007-3-15 
发表于:2008-3-24 12:03:00,来源于:58.213.73.248 ,发贴心情:
-----------------------------------------------------------------------------------------------------
(1)SET_USB_SPEED只是针对CH375B芯片,其余型号不支持该命令
(2)频率是在中断端点描述符中确定的;CH375本身不关心这个频率,也不需要设置命令,是由用户按照设备中断端点描述符中频率值发送IN令牌包;IN令牌包中有端点号,指明操作哪个端点的,CH375本身也不关心具体的传输类型,都是用户决定的,参考ISSUE_TKN_X或ISSUE_TKN命令。
-----------------------------------------------------------------------------------------------------
交流中提高
回  复 [24147]
Re:CH375与中断传输
2
普通用户
solekid { M }
等级:3
发表:5   回复:4
注册时间:2008-3-12 
发表于:2008-3-24 13:08:00,来源于:58.39.48.34 ,发贴心情:
-----------------------------------------------------------------------------------------------------
谢谢。
您的意思我明白了。能不能这样说,CH375处理的是USB协议中提到的Transaction的概念,而Transfer的流程是要用户来保证的?
我是参考了网站提供的常用USB源程序中CH375B芯片做主机操作鼠标键盘的例子程序。看下来觉得程序的流程是:枚举和设置完成之后,发送In令牌启动整个流程,如果设备端响应了该In令牌,完成了一次传输,那么CH375会向CPU申请中断,CPU在中断服务程序中,读取设备发送的数据,紧接着再发In令牌,启动下一次接收。感觉上CPU(或者说用户)是根据设备发送数据的频率来发送In令牌的。这好像与USB中的中断传输有些区别?还是说实际上在例子程序中,CH375向CPU申请中断的频率其实基本是固定,基本上与一个In事务的时间一致?

-----------------------------------------------------------------------------------------------------
这人很懒,什么都没留下
回  复 [24149]
Re:CH375与中断传输
3
普通用户
solekid { M }
等级:3
发表:5   回复:4
注册时间:2008-3-12 
发表于:2008-3-24 13:32:00,来源于:58.39.48.34 ,发贴心情:
-----------------------------------------------------------------------------------------------------
CH375在发送In令牌之后,是不是只有收到数据完成一次In事务才会向CPU申请中断?
-----------------------------------------------------------------------------------------------------
这人很懒,什么都没留下
回  复 [24150]
Re:CH375与中断传输
4
普通用户
SCM { M }
等级:20
发表:0   回复:2480
注册时间:2007-3-15 
发表于:2008-3-24 13:34:00,来源于:58.213.73.248 ,发贴心情:
-----------------------------------------------------------------------------------------------------
(1)各种传输的流程是由用户通过软件实现
(2)我们例程中并没按照中断端点描述符中指定的频率去读中断点,仅供参考。正确的做法是应该
(3)这个说法不准确,示例程序中CH375向CPU申请中断的频率并不是固定的,还与设备本身数据准备的快慢也有关系。如果CH375每发一个IN事务,设备都能立即响应,那么频率自然高;反之,设备都未能立即响应,产生超时,CH375会进行重试N次(N由用户决定),那么频率自然低。
解释的不够详细,建议多看看USB协议
-----------------------------------------------------------------------------------------------------
交流中提高
回  复 [24152]
Re:CH375与中断传输
5
普通用户
solekid { M }
等级:3
发表:5   回复:4
注册时间:2008-3-12 
发表于:2008-3-24 13:49:00,来源于:58.39.48.34 ,发贴心情:
-----------------------------------------------------------------------------------------------------
非常感谢。
-----------------------------------------------------------------------------------------------------
这人很懒,什么都没留下
CH375的U盘读写模块功能概述: 该U 盘文件读写模块用于向嵌入式系统/单片机系统提供读写U 盘中文件数据的接口,基本不需要占用单片机系统的存储空间,最少只需要几个字节的RAM 和几百字节的代码。该模块基于CH375的U盘文件级子程序库设计,外围电路精简,性能价格比很高。 单片机可以通过USB总线HOST&DEVICE接口芯片CH375读写U 盘中的数据,虽然直接调用CH375的U 盘文件级子程序库读写U盘文件的效率更高,成本更低,但是该子程序库需要占用单片机系统的资源,大约5KB 程序空间和600 字节RAM 数据存储器,无法应用于某些资源有限的单片机系统。 CH375的U盘读写模块实物截图: CH375的U盘读写模块功能特点: > 用于嵌入式系统/单片机读写U 盘、闪盘、闪存盘、USB 移动硬盘、USB 读卡器等。 > 支持符合USB 相关规范基于Bulk-Only 传输协议的各种U 盘/闪存盘/外置硬盘。 > 支持文件系统FAT12 和FAT16 及FAT32,如果需要支持FAT32 请看本文后面的说明。 > 提供工具程序,只要连接计算机USB 端口,就可以随时升级模块,随时设置模块。 > 支持小端格式和大端格式的数据字节顺序,适用于绝大多数单片机系统。 > 文件操作功能:搜索、新建、删除、读写数据,查询和修改信息等。 > 读写模式:高速的扇区模式、方便的字节模式、简化的数据流模式。 > 提供3 种硬件以适应不同的I/O 接口:标准版、串口版、低电压版。 > 提供多种软件供随时下载到模块硬件中,通过多种软硬件组合支持各种不同的I/O 接口。 > 模块具有简单的自动演示功能,提供串口连接方式下的计算机端的演示工具。 CH375的U盘读写模块 PCB截图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值