【嵌入式】嵌入式设备实现网络功能——综述
目录
- 前言
- 实现方式
- 一、无线网络的实现
- 二、有线网络的实现
- 1 通过外接物理层(PHY)芯片的方式接入有线网络
- 2 通过外接以太网芯片
前言
随着物联网的推进,以及一些特殊应用场合下对网络功能的要求,网络功能在嵌入式设备中已经成为常客。
对于大部分物联网应用场景,网络功能的任务就是实现设备无线接入外网,从而进行数据通讯,无论协议是TCP、UDP、MQTT中的哪一种。
对于一些特殊场合的应用,网络功能的任务是是嵌入式设备通过RJ45网口、光纤接口等有线方式实现局域网内通讯,或者点对点通讯。
实现方式
一、无线网络的实现
物联网方向的应用,大多是基于无线通讯方式。市面上已经有很多芯片、模块可供使用。比如应用在wifi的ESP8266模块、应用在2G/4G的有方N10模块、有方N58模块等,应用示意图如下所示。
以上模块都把TCP、UDP等复杂的协议栈封装在模块中,使用者只需要完成简单配置即可实现TCP、UDP传输。以上模块都是单片机通过AT指令的方式读写模块,从而实现模块配置、状态获取、命令下发,最终实现TCP、UDP等网络通讯。可见,通过外扩模块的方式,单片机只需要使用一个UART串口外设,即可完成物联网通讯,而不必关注网络极其复杂的MAC层、物理层、协议层内容。
二、有线网络的实现
对于有线网络的实现,主要有两种方式:
1 通过外接物理层(PHY)芯片的方式接入有线网络
这个方式的前提是单片机内部有以太网(ETH)外设,内部已经集成了MAC层,如STM32F207、STM32F4系列的大部分芯片。如果是以上芯片,即可通过MII或RMII接口连接外部PHY网络芯片,然后再通过网络变压器或者阻抗匹配网络等接入有线网络。
对于实现TCP、UDP、HTTP等通讯,仅仅完成以上步骤还不够,因为以上过程只完成了MAC层与PHY层的接入,还要移植协议层才能使用TCP、UDP、HTTP等常规协议。幸好有LwIP这个轻量化的协议栈可以移植,并且通过STM32CubeMX可以一键完成移植。
2 通过外接以太网芯片
看了方法1,是不是觉得太麻烦了,我不仅要有集成MAC层的MCU,还要外接PHY物理芯片,关键是还要占用ROM、RAM来完成协议栈程序的移植,不能忍。那么接下来的方法2可能是你的菜。
为了解决单片机接入有线以太网复杂的难题,市面上已经有很多以太网芯片解决方案。如CH395、W5500、DM9051等以太网芯片。他们将MAC层、PHY层、协议栈等统统封装在了芯片内部,使用者只需要通过UART串口或者SPI或者并口的方式与芯片进行通讯,即可完成单片机设备在有线网络中的通讯。
这对于低性能MCU、资源吃紧的MCU来说,无疑是一个极佳的解决方案。
【嵌入式】嵌入式设备实现网络功能——综述相关推荐
- NFV(Network Function Virtualizatin)·网络功能虚拟化战略实施
写在最前面(我怕您吃快餐,看不完):无论是SDN还是NFV都没有改变网络技术,而只是前者换了网络架构,而后者更换了网络实施的形态而已,请广大网络工程师不要妄自菲薄,你们依旧是互联网的缔造者! 学完本课 ...
- 嵌入式设备的网络性能该如何分析
最近对公司的嵌入式设备做了一个网络性能测试,如何确定网络性能的瓶颈在哪里,以及网络性能影响因素有哪些,有些心得记录在此. 一般评判网络性能都是看数据下载上传的速度.现在主流的带宽有2种,100Mbps ...
- 嵌入式linux下网卡设备驱动与网络协议栈的设计实现.pdf,嵌入式系统的通用网络驱动模型设计与实现.pdf...
维普资讯 第3O卷第4期 长春理工大学学报 (自然科学版 ) VO1.3O N0.4 2007年 12月 JournalofChangchunUniversityofScienceandTechnol ...
- 为嵌入式linux添加网络功能并用tftp传输文件(以ZYNQ为例)
在调试V4L2过程中需要用网络传输文件,将添加网络功能的过程记录在此.这里以ZYNQ为例. 首先需要在VIVADO中勾选以太网如下, 注意这里不要忘记勾选MDIO,需要通过这个接口与PHY芯片进行通信 ...
- 嵌入式Linux设备驱动程序:编写内核设备驱动程序
嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...
- linux spidev 应用_嵌入式Linux设备树语法总结
1 设备树的说明 在写完嵌入式驱动总结后,对于设备树相关的语法和使用一直都想进行系统的描述,但是因为最近比较忙碌,所以一直拖到现在才完成初版,对于整个嵌入式Linux驱动开发中,设备树语法和构建是其中 ...
- 嵌入式linux设备驱动程序是,详解嵌入式Linux设备驱动程序
随着嵌入式技术的发展,随着嵌入式技术的发展,嵌入式系统将广泛地应用于人 类生活的方方面面.如:基于嵌入式工NTERNET网络的地球电子皮肤,可以嵌入到牙齿 上的手机都在研发之中.著名嵌入式系统专家沈绪 ...
- 嵌入式Linux设备驱动程序:在运行时读取驱动程序状态
嵌入式Linux设备驱动程序:在运行时读取驱动程序状态 Embedded Linux device drivers: Reading driver state at runtime 在运行时了解驱动程 ...
- 嵌入式Linux设备驱动程序:用户空间中的设备驱动程序
嵌入式Linux设备驱动程序:用户空间中的设备驱动程序 Embedded Linux device drivers: Device drivers in user space Interfacing ...
最新文章
- 【通俗理解线性代数】 -- 特殊的矩阵
- 【数据结构】邻接表的储存结构 建立图的邻接表算法
- datagrid加checkbox实现分页不丢失选择的记录 (转)
- 2021年度人类社会发展十大科学问题发布
- tomcat-maven插件热部署(简洁版)
- 蔬菜基地售卖系统stage1
- 96 年美女胜出!那个有关“猪脸识别”的比赛决出冠军啦
- 输入设备名输入输出设备的重定向
- String类12个常用的方法
- 超级简单的HTML圆形头像css
- CentOS7非桌面版关闭休眠和设置关闭盖子不休眠(server)
- mbp touchbar设置_Macbook Pro 上 有什么好的 Touchbar 使用技巧?
- 关于信息增益(information gain)
- C#、NPOI生成Word文档(模板)
- 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——1.2 域和计算模型...
- 设计模式第10式:状态模式
- 五星好评html编写,五星好评.html
- matlab 数据透视表,MATLAB | 用行为数据处理EEG数据事件码
- 动态规划(DP)01
- EXE4J生成的exe文件自动请求管理员权限(UAC)
热门文章
- mstsc /admin与mstsc
- 我的世界java版区块显示_我的世界手游区块显示指令分享:区块玩法操作详解[多图]...
- gif透明背景动画_PS实用技巧——视频转GIF
- 万年历java课程设计报告_java《万年历系统》课程设计报告附源码.doc
- 心田花开:请重视情商教育的重要性!
- 天线学习笔记——波导中微波模式的理解(TE/TM/TEM)
- 宇视摄像机存储在SD卡的录像能否在PC上播放
- c语言8bit转10bit,8bit、8+2bit和10bit 手机屏幕三种色深你真的能看出来吗?
- 数据库系统概论第一章课后习题答案(第5版)
- 使用GAE建立免费静态网站