市面上的WIFI模块主要集中两类,
1. 嵌入式环境:大多自带协议栈,接口I2C、UART、SPI
2. PC环境:无协议栈,接口USB、SPI
第二种类型USB接口的WIFI模块市面上一大堆,Linux环境我也搞定,但是由于其他原因不能选择USB接口。
公司最近打算用USR-C322 wifi模块,该模块【
自带协议栈】,采用接口是UART,主要应用于STM32这种嵌入式设备,避免协议栈移植。
https://wenku.baidu.com/view/9a8cecf7eefdc8d377ee326e.html
可是问题来了
无协议栈网卡芯片数据处理方式
应用数据——>Linux协议栈打包封装——>网卡发送
有协议栈网卡芯片数据处理方式
应用数据——>网卡——>网卡内部协议栈打包封装,并发送
这种情况下,我还能使用linux驱动的
net_device 架构去编写驱动吗?还是得
编写字符驱动去操作网卡,由此一来,
应该无法使用BSD标准接口(socket、listen、connect等)
平时阅读Linux网卡驱动全部都是【
无协议栈芯片】,代码照着模板修修改改就能跑起来。现在芯片类型换了反而无从下手。
在驱动里需要做些什么,告诉网卡不要使用自身的协议栈处理数据。