打印
[技术讨论]

《圈圈教你玩USB》如果更新到第三版,还会有人买吗?

[复制链接]
4366|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
computer00|  楼主 | 2021-9-3 08:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
中国中2| | 2021-9-3 15:33 | 只看该作者
现在还在看第二版的,学MIDI,USB太难了

使用特权

评论回复
评论
中国中2 2021-9-8 14:53 回复TA
@computer00 :我再研研 
computer00 2021-9-6 20:02 回复TA
@中国中2 :单从这个现象来看不太好判断,我估计大概率还是在描述的返回方面有地方没处理好吧 
中国中2 2021-9-6 15:26 回复TA
@中国中2 :是SET INTERFACE请求 
中国中2 2021-9-6 15:17 回复TA
@computer00 :没有出现01(SET INTERFACE)值,但确实Bus Hound里看到主机有发SET INTERFACE令牌。希望老师有空时帮我分析一下,谢谢! 
中国中2 2021-9-6 15:17 回复TA
@computer00 :我看你的书学做USB MIDI,遇到点问题:就是枚举最后收到CTL 01 0B 00 00 01 00 00 00 SET INTERFACE令牌后,Bus Hound显示c0000011 xact error错误,卡了一周没有搞清楚是什么问题,希望老师能指点下方向,我用的是国产M0的MCU,中断里有SET INTERFACE分支,但程序一直没有进入这个分支,我在端点0输出中断里监测bmRequestType值,我发现整个枚举过程只有0x80和0x00两种值,没有出现01(SET ... 
computer00 2021-9-3 18:19 回复TA
开始有点难,搞顺之后就很爽啦~~~ 
板凳
54212脑白金| | 2021-9-3 16:55 | 只看该作者
如果加入USB3.0 我买。我就是看你的书学会的usb

使用特权

评论回复
评论
computer00 2021-9-3 18:18 回复TA
其实对于软件开发来说,3.0和2.0其实差异不大,都是差不多的套路。 
地板
clockwin| | 2021-9-3 17:00 | 只看该作者
如果你不说,我都忘了我2年前买过这本书了。

使用特权

评论回复
评论
computer00 2021-9-3 18:19 回复TA
所以你这是没怎么看了嘛~~~ 
5
chunyang| | 2021-9-4 20:32 | 只看该作者
现在还在做版本维护,这个得赞一下。不过现在的USB技术跟十余年前比,变化非常大了,恐怕要增加不少内容才是。

使用特权

评论回复
评论
computer00 2021-9-16 12:08 回复TA
@chunyang :充电这个感觉对大部分人来说可能就有点远了……(其实新增的章节在春节期间都已经定稿交给出版社了,现在就等印刷上架了^_^) 
chunyang 2021-9-15 15:21 回复TA
@computer00 :顺便提提几种快充,那就齐活了…… 
computer00 2021-9-13 09:49 回复TA
@chunyang :好,英雄所见略同,如你所愿^_^ 
chunyang 2021-9-11 17:40 回复TA
@computer00 :就是说需要把变化大的增补上,比如3.0、Type C之类,不用太深入,介绍性就成。别人一看,呦,新书啊,买买买…… 
computer00 2021-9-6 20:04 回复TA
对于上层开发来说,基本逻辑还是差不多的。物理层变化比较大。 
6
dukedz| | 2021-9-6 16:27 | 只看该作者
本帖最后由 dukedz 于 2021-9-6 17:08 编辑

《圈圈教你玩USB》最大的敗筆就是基於 windows 了,特別是到驅動章節就卡殼了,如果基於 linux 會簡單很多

我就是十年前,看到這本書的驅動部分,實在受不了,就切換陣營,徹底改用 linux 了(這本書對我最大的幫助就是讓我改用 linux 系統了)

建議再改版基於 linux 環境,這也是行業未來的趨勢,雖然我們老人大多數不會再買,但可以推薦給新入行的人

硬件可以考慮直接用 stm32(建議用比較新的 stm32g 系列,有合適的 risc-v 也可以考慮),不需要外置控制器了
3.0 的部分可以簡單介紹下就行,反正 mcu 也沒有幾個支持 3.0


使用特权

评论回复
评论
computer00 2021-9-7 08:10 回复TA
意思是要把前面的章节换成stm32重写一轮嘛?还是在后面增加一章移植到STM32的章节?基于linux是gadget device开发还是HOST驱动开发呢? 
computer00 2021-9-6 20:03 回复TA
哈哈~~~毕竟用windows的人多呀……不过windows的驱动开发的确也是不太友好,尽量避免吧,例如用HID设备替代。Linux驱动相对来说网上的资料有很多了,还有很多源码,学起来还是要容易不少的。 
7
雪山飞狐D| | 2021-9-7 04:00 | 只看该作者
    建议以STM32 USB部分为蓝本实例

使用特权

评论回复
8
dukedz| | 2021-9-7 12:55 | 只看该作者
本帖最后由 dukedz 于 2021-9-7 14:36 编辑

>> 意思是要把前面的章节换成stm32重写一轮嘛?还是在后面增加一章移植到STM32的章节?基于linux是gadget device开发还是HOST驱动开发呢?

基於 linux 不是指開發 linux 內核,而是在 linux 電腦上進行 mcu 的開發,以及在 linux 電腦上編寫上位機軟件與 mcu 通訊,而且不要用虛擬機

書開頭的基礎知識部分改動可以少一點,中間的 mcu 開發要全部改成 stm32,後面的上位機開發也要改成 linux 環境


之前用的外掛控制器芯片估計早就停產了吧,就算沒停產也脫離行業了,用 stm32g 可以兩個步驟教學:
- 首先是直接操作寄存器去控制 usb 核,讓學者深刻領會 usb 控制器原理;
- 然後是用 STM32CubeMX 自動生成 usb 相關代碼,讓學者瞭解日常開發方式。

即便是操作 usb 核的寄存器,usb 無關的其它代碼可以使用 STM32CubeMX 生成,節省時間,聚焦重點。

建議全套 linux 環境,STM32CubeMX 直接生成 makefile 工程,安裝了 arm gcc 的情況下,make 一下就可以生成固件,官方燒錄工具也都支持 linux 環境,調試用串口打印就行

如果是 windows 環境,有人用 keil 有人用 iar 有人用 STM32CubeIDE 等等,會衆口難調

然後爲了避免 windows 驅動開發的問題,需要一上來就上 HID 或者 CDC 等免驅設備,其實對新手來說,這個跨度很大,剛學的 usb 底層知識還沒搞熟,又來了 HID 等上層協議,然後在 HID 之上還有 MIDI 等更上層協議,會很痛苦,更麻煩的是,HID 設備不能只是鼠標、鍵盤,還需要是僞裝成 HID 的專用設備,用戶要寫程序與之通訊,而在 windows 環境,寫一個用戶程序和 HID 設備通訊也是一件非常麻煩的事情。在 windows 上調試 usb 、抓包也很麻煩,可能要涉及一堆商業軟件,要各種破誡之類的。

在 linux 系統,調試和查看 usb 的基本信息很方便,開一個 dmesg -w 的監聽窗口,插上設備,就能一目瞭然的看到枚舉過程,能看到設備的速度等級,抓包工具也都有開源的。最重要的是,實現一個最簡廠商設備,然後在 linux 下與之通訊很方便,不需要寫驅動,可以用少量 c 語言代碼,或者 python 等高級語言都行,這樣循序漸進,才能起到最好的教學效果。(linux 下的 usb 設備都不需要驅動,包含各種私有協議。)

而且,到時候,你的大多數讀者,從你這開始學習 linux,甚至轉用 linux,長久以後,他們會感謝你,因爲多年積累的 linux 經驗比 windows 經驗值錢的多。你同時也能改變內地行業風氣,提升內地電子行業的整體水平(國外早就以 linux 爲主了,內地再不改變一定會越來越落後)。

用 stm32g 除了 device 模式,還可以操作一下 host 模式,然後它還內置了 type-c 的供電通訊控制器,也可以講一下
可以考慮使用比較新的型號 STM32G0B1KBT6 (或 U6) (目前方便買的是 KET6,只是 flash 容量更大一些,都是 32 腳的小芯片)
用新的芯片,書過時的就慢一些,stm32g 系列肯定會慢慢取代 stm32f 系列

使用特权

评论回复
9
computer00|  楼主 | 2021-9-7 19:46 | 只看该作者
dukedz 发表于 2021-9-7 12:55
>> 意思是要把前面的章节换成stm32重写一轮嘛?还是在后面增加一章移植到STM32的章节?基于linux是gadget d ...

赞,很好的建议。不过估计这些改动得要等我退休后才能有时间搞了,工作量太大了

使用特权

评论回复
10
17muc| | 2021-9-15 09:14 | 只看该作者
我会买,最近都在学习usb 网上第二版书籍太少了 淘宝京东都标价都150+ 几十块的都是盗版书 没有价格相对合理的正版书籍嘛

使用特权

评论回复
11
x_hzx| | 2021-9-23 17:58 | 只看该作者
建议以STM32 USB部分为蓝本实例

使用特权

评论回复
12
redglade| | 2022-5-17 18:31 | 只看该作者
如果是入门的话,这本书已经到达了目的。 如果是精进, 建议换一个书名会更好

使用特权

评论回复
13
xuan2316| | 2022-10-31 16:26 | 只看该作者
已买第三版,在做个USB键盘+数据通信复合设置

使用特权

评论回复
评论
computer00 2022-12-1 18:40 回复TA
@xuan2316 :重点看看4.10章节,比较大可能性是接口编号改变了,但是有些引用的地方没有同步更新。另外PID更新下看看。 
xuan2316 2022-12-1 16:24 回复TA
@computer00 麻烦请教个问题,我在用STM32F103+W25Q80,做一个虚拟u盘+FATFS+键鼠的设备,现在u盘+fatfs部分已经调通了。USB 键鼠在另一个板上也调通了,但整合到一起时行。能给点建议吗 
computer00 2022-11-28 18:27 回复TA
感谢支持 
14
天意无罪| | 2022-11-1 00:01 | 只看该作者
楼主还能沉下心来写书就不错了啊,现在的人停下来思考得时间越来越少了。

使用特权

评论回复
15
springvirus| | 2022-11-1 08:35 | 只看该作者
当年买的第一版,不错的USB入门书

使用特权

评论回复
16
computer00|  楼主 | 2022-11-28 18:27 | 只看该作者
第三版在京东上已经可以买到啦~

使用特权

评论回复
评论
keeta 2022-11-29 16:01 回复TA
你好,书中的代码能否帮忙发一下? 
17
keeta| | 2022-11-29 02:30 | 只看该作者
我也买到了,但是有个问题,北航出版社打不开,文件能否帮忙传一份?

使用特权

评论回复
评论
computer00 2022-11-29 19:24 回复TA
电脑打开好像有问题,你用手机试试看,手机我试了下下载专区可以打开 
18
computer00|  楼主 | 2022-11-29 19:24 | 只看该作者
keeta 发表于 2022-11-29 02:30
我也买到了,但是有个问题,北航出版社打不开,文件能否帮忙传一份?

电脑打开好像有问题,你用手机试试看,手机我试了下下载专区可以打开

使用特权

评论回复
19
lilijin1995| | 2023-2-14 16:08 | 只看该作者
我觉得沁恒微的USB就很不错,加上RISC-V,下次出一本相关的嘛

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

246

主题

14693

帖子

210

粉丝