[经验] 内置协议栈的网卡,怎么将该网卡驱动添加到linux

lzwml   2017-4-3 13:36 楼主
市面上的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网卡驱动全部都是【无协议栈芯片】,代码照着模板修修改改就能跑起来。现在芯片类型换了反而无从下手。


在驱动里需要做些什么,告诉网卡不要使用自身的协议栈处理数据。


回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复