2024年5月28日发(作者:塔莹玉)
LAN8720A
异步中断的热插拔网络设计原理与方法
张伟
,
马亚辉
,
吴凡
,
邓浩然
,
李林
()
中电科蓉威电子技术有限责任公司
,
成都
610031
摘要
:
本文首先概述了一般的热插拔网络功能设计依据及方法
,
继而进一步阐述了基于
LAN8720A
采用异步中断方式
的热插拔网络设计原理
。
随后在移植
L
分别采用轮询方式和异步中断方式
,
从硬件及软件两方面详细介
wIP
的环境下
,
绍了热插拔网络功能
,
并对两种设计方法进行了全面的对比分析
。
关键词
:
热插拔
;
轮询
;
异步中断
;
状态机
;
LwIP
;
STM32F417
;
LAN8720A
中图分类号
:
TP311.1
文献标识码
:
A
AsnchronousInterrutHotSwaetworkDesinPrincileandMethodBasedonLAN8720A
ypp
N
gp
,,
chronousinterrutbasedonLAN8720Ahot-swaetworkdesin
p
LwIPtranslantenvironmentthehot-swaet-
pp
n
gppp
n
:,,
Abstract
Firstlthis
p
aeroverviewsthe
g
eneraldesinbasisandmethodofhot-swaetworkfunctionandfurtherdescribestheasn-
ypgp
n
y
(,,)
610031
,
China
ggy
C
g
,,,,
ZhaneiMaYahuiWuFanDenaoranLiLin
g
W
g
H
,
workfunctionisdesinedfromhardwareandsoftwareasectsin
p
ollinodeandasnchronousinterrutmodeandthetwodesin
gpg
m
ypg
:;;;
Kewords
hot-swaollasnchronousinterrutLwIP
;
FSM
;
STM32F417
;
LAN8720A
ppyp
y
methodsarecomaredandanalzedcomrehensivel.
pypy
0
引
言
其传输速度高
、
能耗低
、
兼容性好和便于安装等优势
,
在数
据信息系统中得到了广泛应用
。
而热插拔技术对于以太
网也非常重要
,
它使得以太网能够快速
、
准确地获取连接
状态
,
以确保网络通信的稳定可靠
。
,)
不断轮询物理接口收发器
ManaementInterfaceSMI
g
)
随着嵌入式技术的发展
,
以太网
(
技术凭借
Ethernet
因此最多可定义
3
每个寄存器共有
15
位
,
2
个寄存器
,
6
位
。
而在该标准中已定义了
0~15
这
16
个寄存器的功
内部的寄存器来实现的
。
PHY
寄存器的地址空间为
能
,
地址
16~31
的寄存器预留给芯片制造厂商自由定义
。
,,
其中寄存器
1
为状态寄存器
(
BasicStatusReisterBSR
)
g
该内容包含了全双工
/
半双工模式
、
自协商以及连接状态
等信息
,
通常的热插拔设计是通过不断轮询状态寄存器的
通常的网络热插拔设计是通过串行管理接口
(
Serial
)
连接状态
(
位来实现的
。
LinkStatus
(
来获取以太网的连接状态
,
从而通过媒体独立接
PHY
)
)
口
(
来控制
PMIIHY
芯片的断线重连及网络通信
。
而这
种设计方法既无法做到实时获取
、
处理网络连接状态
,
又
需要在嵌入式软件设计中不断轮询较为低速的
SMI
接
口
,
以致影响系统其他任务的处理
。
因此
,
使用异步中断
方式替代常用的轮询方式实现网络的热插拔设计是有实
用意义的
。
该芯片符合
I
支持通
LAN8720A
,
EEE802.32005
标准
,
过
RM
通信
。
同
II
接口与以太网媒体接入控制器
(
MAC
)
而在本网络嵌入式系统设计中
,
PHY
芯片选用
时该芯片还设计有中断功能
,
可对厂家自定义的寄存器
()、()
进行配置
,
29InterrutSourceFla30InterrutMask
pgp
/
从而使用
LAN8720A
通过
nINTREFCLKO
功能复用引
脚产生低有效的异步中断信号
,
实现网络热插拔功能
。
LAN8720A
的
SMI
寄存器地址如表
1
所列
。
1
设计原理
行为进行管理
、
控制的管理实体
(
SMI
接口对其状态
、
Sta-
2
热插拔功能详细设计
用
RM
在裸机环境下通过
II
接口与
PHY
芯片进行通信
,
移植网络协议栈
LwIP
来实现热插拔软件设计
。
主控芯片选用
S
其内部集成了
MA
采
TM32F417
,
C
,
在
I
将
PEEE802.3
标准中
,
HY
定义为一个可通过
),
而具体的操作是通过读写
PtionManaementEntitHY
gy
3 4
Microcontrollers&EmbeddedSstems
2021
年第
1
期
y
www
.
mesnet
.
com
.
cn
表
1 LAN8720A
的
SMI
寄存器地址
寄存器
#
0
1
2
3
4
5
6
BasicControlReister
g
描
述组
别
Basic
Basic
2.1.2
软件设计
]
片的
MO
复用引脚默认内部上拉
,
则每次上电或
DE
[
2
:
0
硬复位缺省值全为
1
,
即使能了自协商功能
。
在使能自协商功能而网络未连接情况下
,
PHY
芯片
PHYldentifier1
BasicStatusReister
g
PHYldentifier2
Extended
Auto-NeotiationLinkPartherAbil-
g
litReister
yg
Auto-NeotiationAdvertisementReister
gg
Extended
Extended
Extended
Extended
),
以根据双方的最大连接能力选择最好的连接方
Pulse
式
。
目前
,
通常的
PHY
芯片基本都已支持自协商功能
,
即便不支持自协商或是禁用了该功能
,
通过标准的并行检
将控制网络端口一直发送快速连接脉冲
(
FastLink
16
17
18
20
21
22
23
26
27
28
29
30
31
SiliconRevisionReister
g
Auto-NeotiationExansionReister
gpg
/
ModeControlStatusReister
g
测机制仍可建立通用的网络连接
,
且在完成时会将
BSR
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
)
的第
5
位自协商完成标志位
(
AutoNeotiateComlete
gp
置高
。
因此
,
为了获得最佳的网络连接能力且适应性更
强
,
在进行
MA
而调用
SC
初始化时使能自协商功能
,
T
公
)(),
司提供的标准网络库函数
(
stm32f4x7
_
_
Init
以控制
S
会等待
MI
接口对网络外设进行初始化配置时
,
因此在网络断开情况下
,
周期地查询
BSR
时采用自协商
()
函数时一直重复查询至超时的阻塞时间
。
Init
因此
,
根据
LwIP
结合
MAC
及
PHY
芯片的网络初始
化过程
,
出于
“
谁申请谁释放
”
的内存管理原则
,
采用逆向
释放的设计思路优化设计了热插拔网络状态机
。
在连接
断开和恢复的状态下
,
通过不断轮询
PHY
芯片
BSR
的方
式来周期性地感知网络连接状态
,
从而控制网络状态机切
换状态
,
动态地释放
、
申请内存及配置
E
实现断
TH
接口
,
线重连功能
。
采用轮询方式设计的热插拔网络状态机可
“
定时查询
”
及
“
网络重连
”
这
6
个状态
,
采用轮询方式的热
”、“、“、“、
划分为
“
动态
I
正常连接
”
内存释放
”
内存申请
”
P
插拔网络状态机设计如图
2
所示
。
自协商结束位有效后
,
根据自协商的结果来进行初始化
。
完成标志位判断更为准确
,
既可跳过
MAC
配置时的自协
商等待时间
,
又可避免在网络无连接情况下
,
调用
ETH
_
SecialModes
p
Reserved
Reserved
Reserved
Reserved
SmbolErrorCounterReister
yg
lnterutSourceReister
pg
Secialintemaltestabiliontrols
py
c
/
ControlStatuslndicationReister
g
lnterutMaskReister
pg
/
PHYSecialControlStatusReister
pg
2.1
采用轮询方式的设计方法
2.1.1
硬件设计
/
择引脚
LED2nINTSEL
通过下拉电阻设置为低
,
PHY
芯
),
片工作于参考时钟输出模式
(
即在
REF
_
CLKOutMode
此时
P
因此可将模式选
HY
芯片无需输出中断信号
,
/
上电或外部复位过程中将
nINTREFCLKO
引脚配置为
参考时钟输出
(
功能引脚
。
此时
RMREFCLKO
)
II
的参考
时钟
(
可通过
XREF
_
CLK
)
TAL1
和
XTAL2
引脚连接一
个低成本的外部
2
在
P5MHz
晶体作为输入
,
HY
芯片内
2.2
采用异步中断的设计方法
2.2.1
硬件设计
/
需将模式选择引脚
LED2nINTSEL
悬空或上拉至
VDD2A
电压
,
PHY
芯片工作于参考时钟输入模式
(
REF
_
部自动将参考时钟倍频至
5
由
R0MHz
后
,
EFCLKO
引脚
此时
P
因此
HY
芯片需要输出中断信号至主控芯片
,
输出至
RM
用于时钟同步
。
在参考时钟
II
的
REF
_
CLK
,
输出工作模式下的信号流图如图
1
所示
。
同时
,
PHY
芯
),/
即在上电或外部复位过程中
nCLKInModeINTREF-
功能引脚
。
CLKO
引脚配置为低有效中断输出
(
nINT
)
则需要由外部
5RMII
的参考时钟
(
REF
_
CLK
)
0MHz
晶
振同步输出至主控及
P
而为了避免时钟信号分
HY
芯片
,
叉所带来的阻抗不连续等信号完整性的问题
,
选用了
用于时钟
CY2305SI
时钟缓冲器驱动两个参考时钟信号
,
,
同步
。
该芯片输出时钟之间的时钟偏移典型值为
85
p
s
满足
RMII
的参考时钟要求
。
同时由于
STM32
芯片外
部中断机制配置相当灵活
,
因此可将
nINT
信号就近接
图
1
在参考时钟输出工作模式下的信号流图
入任意空闲
G
用于接收
PPIO
,
HY
芯片产生的外部中断
。
敬请登录网站在线投稿
()
g
2021
年第
1
期
3 5
(
置
1
,
以将
PALTINT
)
HY
芯片配置为交替中断
模式
。
LAN8720A
的替代中断系统管理表如表
2
所列
。
在异步中断方式下网络断开等待重连时的中
断源同样地选择为中断屏蔽寄存器的第
2
位自协
。
在网络连接状态下使用中断屏蔽寄存器
YON
)
)
的第
4
位连接断开标志
(
来快速准确
LinkDown
硬复位后对模式控制
/
状态寄存器
17
的第
6
位
商结束标志
,
而非第
1
位网线插入标志
(
ENERG-
捕捉网络断开信息
。
通过将连接
nINT
中断信号
的
G
即可快速
PIO
配置为下降沿触发中断模式
,
准确地获取网络状态变化信息
,
采用异步中断方
式的热插拔网络状态机设计如图
4
所示
。
与采用轮询方式设计的热插拔网络状态机对
比可知
,
虽然采用异步中断方式设计的状态机仍
图
2
采用轮询的热插拔网络的状态机设计
有
6
个状态
,
但将原来需要不断查询
B
较为占
SR
、
用系统处理时间的等待连接状态和正常连接状态
改为空操作
,
通过
nINT
的异步中断触发
。
同时可将
以快速响应网络状
nINT
中断优先级设置为最高
,
态变化
,
并在中断处理函数中仅根据当前网络状态
控制状态跳转并清除中断标志位
,
以作最简短的中
断处理
,
避免影响其他中断的响应
,
即图
4
中方框
标识所示
。
在参考时钟输入工作模式下的信号流图如图
3
所示
。
3
轮询及异步中断方式的对比分析
硬件设计相对简单
,
只通过价格相对低廉的外部晶
图
3
在参考时钟输入工作模式下的信号流图
基于
LAN8720A
采用轮询方式的热插拔网络
振即可产生同步参考时钟信号
,
但一般晶振在宽温
不佳
,
且信号质量相对较差
,
可能会导致网络通信不稳定
的情况发生
。
同时由于
PHY
芯片无异步中断输入至主
控芯片
,
因此主控芯片无法直接准确地获取当前
PHY
芯
片工作状态
,
只有不断地轮询
B
使得热插拔状态机软
SR
,
2.2.2
软件设计
需要通过配置其中断屏蔽寄存器使
IEEE802.3
规范
,
nINT
引脚输出异步低有效中断信号
。
LAN8720A
支持
工作条件
(
下频率稳定性通常表现
-55~+85℃
)
LAN8720A
所支持的中断管理配置功能并不涵盖
两种中断模式
:
一种为基础中断模式
(
Primarnterrut
y
I
p
),
另一种为交替中断模式
(
ModeAlternativeInterrut
p
件设计相对复杂
,
需调用定时器资源
,
且轮询处理相对较
为占用系统处理时间
。
表
2
替代中断系统管理表
)。
两种中断模式均在对应屏蔽位置时使
nModeINT
发
中断信号输出的方式
:
在基础中断模式下需要中断源无效
或是读中断源标志寄存器
;
而交替中断模式下则需要在中
断源无效后将对应中断源标志位置
1
或是直接清除对应
的中断屏蔽位
。
由于在网络动态地断线重连过程中
,
需要
根据不同的连接状态多次更改中断屏蔽位的配置以产生
中断信号
,
因此采用交替中断模式设计
。
而基础中断模式
为上电或硬件复位后的默认缺省状态
,
则需在每次上电或
出低有效中断信号
,
而两者的主要不同为它们解除
nINT
3 6
Microcontrollers&EmbeddedSstems
2021
年第
1
期
y
www
.
mesnet
.
com
.
cn
大允许传输单元
(
Maximum
)
限制
,
模拟
TransmissionUnit
大数据量
、
快速收发的应用
场景
。
在测试过程中
,
任意时刻断
开网络连接再恢复
,
断线重连测
试
5
采用轮询方式和异步
0
次
,
中断方式的热插拔设计均能够
快速地恢复收发计数累加
,
且恢
复后的收发计数始终保持相等
,
不存在数据掉包现象
。
通过断
点调试发现
,
每次读
BSR
大约需
,
耗时
2
因此采用轮询方式
0
μ
s
进行断线重连操作时
,
在网络连
,
而轮询周期即为定时查询
20
μ
s
接后等待时间约为轮询周期加
状态下既考虑轮询
BSR
处理对
系统整体的影响
,
又结合上位机
软件对网络连接后通信响应时
图
4
采用异步中断的热插拔网络的状态机设计
件设计相对复杂
,
需在外部使用成本相对较高的晶振
,
并
经过时钟缓冲器产生同步参考时钟
,
以确保信号完整性
,
而晶振及时钟缓冲器工作温度适应性较强
,
适合于宽温工
作应用场景
,
且
PHY
芯片可产生异步中断信号至主控芯
片
,
主控芯片即可快速准确地获取当前
PHY
芯片的工作
状态
,
无需轮询操作
,
使得热插拔状态机软件设计相对简
单
,
不占用系统处理时间
。
两种方式下的热插拔网络设计
对比汇总如表
3
所列
。
表
3
两种方式下的热插拔网络设计对比
通用性
通用
定制
硬件
设计
简单
复杂
软件
设计
复杂
简单
工作
温度
商用
宽温
系统
占用
较多
少
成
本
低
较高
基于
LAN8720A
采用异步中断方式的热插拔网络硬
间的要求
,
统筹考虑设计
。
由此可知
,
采用轮询方式设计的断线重连等待时间相
对采用异步中断方式设计的较长
,
且可能存在
UDP
分包
发送过程中网络断开而无法感知的情况
。
采用异步中断
方式设计的测试验证情况如图
5
所示
。
采用方式
轮询方式
异步中断方式
图
5
采用异步中断方式设计的测试验证情况
可以看出
,
采用轮询方式的热插拔网络设计具有通用
性
,
适用于成本受限且工作条件良好的一般应用场景
;
而
采用异步中
,
断方式的热插拔网络设计具有芯片定制性
,
适用于对网络通信稳定性及工作条件要求较高
,
且对于成
本不敏感的特殊应用场景
。
5
结
语
本文对采用轮询方式和异步中断方式设计的网络热
插拔功能进行了详细的原理论述及全面地对比分析
,
对相
关的网络嵌入式系统设计具有一定的指导意义
。
参考文献
[]
ndImlementationoftheLwIP
gp
4
测试验证
在
PC
机端使用网络调试助手对
UDP
协议通信进行
对发对收测试验证
:
PC
机端以网络调试助手所支持的最
,
小发送间隔为
1m
嵌入
s6KB
包长进行数据流循环发送
;
[]
马亚辉
,
吴凡
,
李林
,
等
.
基于
L2wIP
的热插拔网络嵌入式设计方
,
erScience2001.
/[
TCPIPStackM
]
.Stockholm
:
SwedishInstituteofComut-
p
],():,
法
[
单片机与嵌入式系统应用
,
J.2.
式软件在接收到
U
依次将数据切割为定长数
DP
数据后
,
据包和不足定长的尾包数据
,
分多包返回发送
,
以突破最
[]
张超
,
王志超
,
林岩
,
等
.
基于
L3wIP
协议栈的嵌入式网络控制系
]():
统设计
[
单片机与嵌入式系统应用
,
0
J.201923440.
6
敬请登录网站在线投稿
()
g
2021
年第
1
期
3 7
图
7
新一代外置蓝牙断路器软件组成框图
信号和反馈信号均为
2
存在用电安全隐
20V
交流电压
,
图
6
新一代外置断路器控制模块电机位置检测电路
患
;
控制信号和反馈信号均为简单的电平信号
,
容易人为
,
模拟操作
,
存在断路器被非法控制的隐患
。
配合国家电网
进行新一代电能表
(
带蓝牙功能
)
的推广
,
现场安装接线更
便捷
,
提高了安装效率
,
同时通过加密传输和控制
,
保证了
用电的安全和可靠
,
降低了电网公司运营成本
,
居民用电
也更方便快捷
,
该模组的研制成功对于国网公司具有重要
的社会和经济效益
。
参考文献
[]
电工基本术语
G
/
1BT2900.1
,
2008.
能表接收的蓝牙广播特征码对比一致时
,
随机生成特征码
二
,
通过蓝牙发送给蓝牙断路器模组编码生成电流指纹
,
通过电力线发送给电能表
,
电能表接收电流指纹继续解析
出特征码二
,
如果同自己发送的特征码二一致
,
就确认此
蓝牙断路器为该电能表下的蓝牙断路器
,
自动配对完成
后
,
业务流程上就实现了电能表蓝牙主控模块外置断路
/
器的数据通信
,
蓝牙主控模块接收电能表
DLT698
协议
加密指令
,
经过协议转换后控制断路器开合闸
,
另外蓝牙
模组也可以接收断路器的状态上报
,
经过协议转换并加密
后上传给电能表
。
同时
,
蓝牙断路器支持通过手机
A
pp
对蓝牙断路器模组和蓝牙模块进行
OTA
远程升级
。
软
[]
电气附件家用及类似场所用过电流保护断路器第
1
部分
:
2
[]
低压开关设备和控制设备第
2
部分
:
,
断路器
G3B14048.22008.
用于交流的断路器
GB10963.1
,
2005.
3
结
语
件组成框图如图
7
所示
。
[]
设备用断路器
G4B17701
,
2008.
[]
电能表外置断路器技术规范
Q
/
5GDW11421
,
2015.
本文通过对电能表外置蓝牙断路器模组的需求分析
,
,:
黄波
、
唐玉建
(
初级工程师
)
李明
、
秦晓敏
(
中级工程师
)
主要研究
方向为嵌入式系统
、
智能用电应用
。
()
责任编辑
:
薛士然
收稿日期
:
2020-07-08
研制了新一代外置蓝牙断路器模组
,
解决了有线连接断路
器存在的诸多问题
:
安装接线复杂
、
现场施工难度大
;
控制
/
江来
,
代鑫
.
嵌入式
T
37
[
4
]
孙乐鸣
,
CPIP
协议栈
LwIP
的
[]
徐天纬
,
郁汉琪
,
顾思远
.
两种网络之间的热备冗余实时通信接
5
7982.
:
内部结构探索与研究
[
电子元器件应用
,
J
]
.2008
(
3
)
[]
韩兴会
.
基于
S9TM32
和
LwIP
的无线传感器网络网关研究
[]
索朝举
,
沈沛雨
,
刘静波
,
等
.10STM32
的调频无线发射与接
与应用
[
西安
:
西安工程大学
,
D
]
.2018.
[]
吴云龙
,
程武山
.
基于
S6TM32
的语音识别机械手智能系统设
],():,
口设计
[
单片机与嵌入式系统应用
,
J.2.
]():
计
[
单片机与嵌入式系统应用
,
J.2020
,
2013741.
]():
信技术
[
电子技术与软件工程
,
J.2019192728.
8183.
]:
收系统设计
[
单片机与嵌入式系统应用
,
J.2019
,
19
(
12
)
[]
李晨
,
蒋林
,
刘思平
.
基于
S7TM32
与
LwIP
协议栈的高效通
,
马亚辉
、
吴凡
、
邓浩然
、
李林
(
工程师
)
主要研究方向为高速可靠存
储系统研发
。
()
责任编辑
:
薛士然
收稿日期
:
2020-06-28
[]
周航慈
.
基于嵌入式实时操作系统的程序设计技术
[
8M
]
.2
版
.
北京
:
北京航空航天大学出版社
,
2011.
6 0
Microcontrollers&EmbeddedSstems
2021
年第
1
期
y
www
.
mesnet
.
com
.
cn
2024年5月28日发(作者:塔莹玉)
LAN8720A
异步中断的热插拔网络设计原理与方法
张伟
,
马亚辉
,
吴凡
,
邓浩然
,
李林
()
中电科蓉威电子技术有限责任公司
,
成都
610031
摘要
:
本文首先概述了一般的热插拔网络功能设计依据及方法
,
继而进一步阐述了基于
LAN8720A
采用异步中断方式
的热插拔网络设计原理
。
随后在移植
L
分别采用轮询方式和异步中断方式
,
从硬件及软件两方面详细介
wIP
的环境下
,
绍了热插拔网络功能
,
并对两种设计方法进行了全面的对比分析
。
关键词
:
热插拔
;
轮询
;
异步中断
;
状态机
;
LwIP
;
STM32F417
;
LAN8720A
中图分类号
:
TP311.1
文献标识码
:
A
AsnchronousInterrutHotSwaetworkDesinPrincileandMethodBasedonLAN8720A
ypp
N
gp
,,
chronousinterrutbasedonLAN8720Ahot-swaetworkdesin
p
LwIPtranslantenvironmentthehot-swaet-
pp
n
gppp
n
:,,
Abstract
Firstlthis
p
aeroverviewsthe
g
eneraldesinbasisandmethodofhot-swaetworkfunctionandfurtherdescribestheasn-
ypgp
n
y
(,,)
610031
,
China
ggy
C
g
,,,,
ZhaneiMaYahuiWuFanDenaoranLiLin
g
W
g
H
,
workfunctionisdesinedfromhardwareandsoftwareasectsin
p
ollinodeandasnchronousinterrutmodeandthetwodesin
gpg
m
ypg
:;;;
Kewords
hot-swaollasnchronousinterrutLwIP
;
FSM
;
STM32F417
;
LAN8720A
ppyp
y
methodsarecomaredandanalzedcomrehensivel.
pypy
0
引
言
其传输速度高
、
能耗低
、
兼容性好和便于安装等优势
,
在数
据信息系统中得到了广泛应用
。
而热插拔技术对于以太
网也非常重要
,
它使得以太网能够快速
、
准确地获取连接
状态
,
以确保网络通信的稳定可靠
。
,)
不断轮询物理接口收发器
ManaementInterfaceSMI
g
)
随着嵌入式技术的发展
,
以太网
(
技术凭借
Ethernet
因此最多可定义
3
每个寄存器共有
15
位
,
2
个寄存器
,
6
位
。
而在该标准中已定义了
0~15
这
16
个寄存器的功
内部的寄存器来实现的
。
PHY
寄存器的地址空间为
能
,
地址
16~31
的寄存器预留给芯片制造厂商自由定义
。
,,
其中寄存器
1
为状态寄存器
(
BasicStatusReisterBSR
)
g
该内容包含了全双工
/
半双工模式
、
自协商以及连接状态
等信息
,
通常的热插拔设计是通过不断轮询状态寄存器的
通常的网络热插拔设计是通过串行管理接口
(
Serial
)
连接状态
(
位来实现的
。
LinkStatus
(
来获取以太网的连接状态
,
从而通过媒体独立接
PHY
)
)
口
(
来控制
PMIIHY
芯片的断线重连及网络通信
。
而这
种设计方法既无法做到实时获取
、
处理网络连接状态
,
又
需要在嵌入式软件设计中不断轮询较为低速的
SMI
接
口
,
以致影响系统其他任务的处理
。
因此
,
使用异步中断
方式替代常用的轮询方式实现网络的热插拔设计是有实
用意义的
。
该芯片符合
I
支持通
LAN8720A
,
EEE802.32005
标准
,
过
RM
通信
。
同
II
接口与以太网媒体接入控制器
(
MAC
)
而在本网络嵌入式系统设计中
,
PHY
芯片选用
时该芯片还设计有中断功能
,
可对厂家自定义的寄存器
()、()
进行配置
,
29InterrutSourceFla30InterrutMask
pgp
/
从而使用
LAN8720A
通过
nINTREFCLKO
功能复用引
脚产生低有效的异步中断信号
,
实现网络热插拔功能
。
LAN8720A
的
SMI
寄存器地址如表
1
所列
。
1
设计原理
行为进行管理
、
控制的管理实体
(
SMI
接口对其状态
、
Sta-
2
热插拔功能详细设计
用
RM
在裸机环境下通过
II
接口与
PHY
芯片进行通信
,
移植网络协议栈
LwIP
来实现热插拔软件设计
。
主控芯片选用
S
其内部集成了
MA
采
TM32F417
,
C
,
在
I
将
PEEE802.3
标准中
,
HY
定义为一个可通过
),
而具体的操作是通过读写
PtionManaementEntitHY
gy
3 4
Microcontrollers&EmbeddedSstems
2021
年第
1
期
y
www
.
mesnet
.
com
.
cn
表
1 LAN8720A
的
SMI
寄存器地址
寄存器
#
0
1
2
3
4
5
6
BasicControlReister
g
描
述组
别
Basic
Basic
2.1.2
软件设计
]
片的
MO
复用引脚默认内部上拉
,
则每次上电或
DE
[
2
:
0
硬复位缺省值全为
1
,
即使能了自协商功能
。
在使能自协商功能而网络未连接情况下
,
PHY
芯片
PHYldentifier1
BasicStatusReister
g
PHYldentifier2
Extended
Auto-NeotiationLinkPartherAbil-
g
litReister
yg
Auto-NeotiationAdvertisementReister
gg
Extended
Extended
Extended
Extended
),
以根据双方的最大连接能力选择最好的连接方
Pulse
式
。
目前
,
通常的
PHY
芯片基本都已支持自协商功能
,
即便不支持自协商或是禁用了该功能
,
通过标准的并行检
将控制网络端口一直发送快速连接脉冲
(
FastLink
16
17
18
20
21
22
23
26
27
28
29
30
31
SiliconRevisionReister
g
Auto-NeotiationExansionReister
gpg
/
ModeControlStatusReister
g
测机制仍可建立通用的网络连接
,
且在完成时会将
BSR
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
Vendor-secific
p
)
的第
5
位自协商完成标志位
(
AutoNeotiateComlete
gp
置高
。
因此
,
为了获得最佳的网络连接能力且适应性更
强
,
在进行
MA
而调用
SC
初始化时使能自协商功能
,
T
公
)(),
司提供的标准网络库函数
(
stm32f4x7
_
_
Init
以控制
S
会等待
MI
接口对网络外设进行初始化配置时
,
因此在网络断开情况下
,
周期地查询
BSR
时采用自协商
()
函数时一直重复查询至超时的阻塞时间
。
Init
因此
,
根据
LwIP
结合
MAC
及
PHY
芯片的网络初始
化过程
,
出于
“
谁申请谁释放
”
的内存管理原则
,
采用逆向
释放的设计思路优化设计了热插拔网络状态机
。
在连接
断开和恢复的状态下
,
通过不断轮询
PHY
芯片
BSR
的方
式来周期性地感知网络连接状态
,
从而控制网络状态机切
换状态
,
动态地释放
、
申请内存及配置
E
实现断
TH
接口
,
线重连功能
。
采用轮询方式设计的热插拔网络状态机可
“
定时查询
”
及
“
网络重连
”
这
6
个状态
,
采用轮询方式的热
”、“、“、“、
划分为
“
动态
I
正常连接
”
内存释放
”
内存申请
”
P
插拔网络状态机设计如图
2
所示
。
自协商结束位有效后
,
根据自协商的结果来进行初始化
。
完成标志位判断更为准确
,
既可跳过
MAC
配置时的自协
商等待时间
,
又可避免在网络无连接情况下
,
调用
ETH
_
SecialModes
p
Reserved
Reserved
Reserved
Reserved
SmbolErrorCounterReister
yg
lnterutSourceReister
pg
Secialintemaltestabiliontrols
py
c
/
ControlStatuslndicationReister
g
lnterutMaskReister
pg
/
PHYSecialControlStatusReister
pg
2.1
采用轮询方式的设计方法
2.1.1
硬件设计
/
择引脚
LED2nINTSEL
通过下拉电阻设置为低
,
PHY
芯
),
片工作于参考时钟输出模式
(
即在
REF
_
CLKOutMode
此时
P
因此可将模式选
HY
芯片无需输出中断信号
,
/
上电或外部复位过程中将
nINTREFCLKO
引脚配置为
参考时钟输出
(
功能引脚
。
此时
RMREFCLKO
)
II
的参考
时钟
(
可通过
XREF
_
CLK
)
TAL1
和
XTAL2
引脚连接一
个低成本的外部
2
在
P5MHz
晶体作为输入
,
HY
芯片内
2.2
采用异步中断的设计方法
2.2.1
硬件设计
/
需将模式选择引脚
LED2nINTSEL
悬空或上拉至
VDD2A
电压
,
PHY
芯片工作于参考时钟输入模式
(
REF
_
部自动将参考时钟倍频至
5
由
R0MHz
后
,
EFCLKO
引脚
此时
P
因此
HY
芯片需要输出中断信号至主控芯片
,
输出至
RM
用于时钟同步
。
在参考时钟
II
的
REF
_
CLK
,
输出工作模式下的信号流图如图
1
所示
。
同时
,
PHY
芯
),/
即在上电或外部复位过程中
nCLKInModeINTREF-
功能引脚
。
CLKO
引脚配置为低有效中断输出
(
nINT
)
则需要由外部
5RMII
的参考时钟
(
REF
_
CLK
)
0MHz
晶
振同步输出至主控及
P
而为了避免时钟信号分
HY
芯片
,
叉所带来的阻抗不连续等信号完整性的问题
,
选用了
用于时钟
CY2305SI
时钟缓冲器驱动两个参考时钟信号
,
,
同步
。
该芯片输出时钟之间的时钟偏移典型值为
85
p
s
满足
RMII
的参考时钟要求
。
同时由于
STM32
芯片外
部中断机制配置相当灵活
,
因此可将
nINT
信号就近接
图
1
在参考时钟输出工作模式下的信号流图
入任意空闲
G
用于接收
PPIO
,
HY
芯片产生的外部中断
。
敬请登录网站在线投稿
()
g
2021
年第
1
期
3 5
(
置
1
,
以将
PALTINT
)
HY
芯片配置为交替中断
模式
。
LAN8720A
的替代中断系统管理表如表
2
所列
。
在异步中断方式下网络断开等待重连时的中
断源同样地选择为中断屏蔽寄存器的第
2
位自协
。
在网络连接状态下使用中断屏蔽寄存器
YON
)
)
的第
4
位连接断开标志
(
来快速准确
LinkDown
硬复位后对模式控制
/
状态寄存器
17
的第
6
位
商结束标志
,
而非第
1
位网线插入标志
(
ENERG-
捕捉网络断开信息
。
通过将连接
nINT
中断信号
的
G
即可快速
PIO
配置为下降沿触发中断模式
,
准确地获取网络状态变化信息
,
采用异步中断方
式的热插拔网络状态机设计如图
4
所示
。
与采用轮询方式设计的热插拔网络状态机对
比可知
,
虽然采用异步中断方式设计的状态机仍
图
2
采用轮询的热插拔网络的状态机设计
有
6
个状态
,
但将原来需要不断查询
B
较为占
SR
、
用系统处理时间的等待连接状态和正常连接状态
改为空操作
,
通过
nINT
的异步中断触发
。
同时可将
以快速响应网络状
nINT
中断优先级设置为最高
,
态变化
,
并在中断处理函数中仅根据当前网络状态
控制状态跳转并清除中断标志位
,
以作最简短的中
断处理
,
避免影响其他中断的响应
,
即图
4
中方框
标识所示
。
在参考时钟输入工作模式下的信号流图如图
3
所示
。
3
轮询及异步中断方式的对比分析
硬件设计相对简单
,
只通过价格相对低廉的外部晶
图
3
在参考时钟输入工作模式下的信号流图
基于
LAN8720A
采用轮询方式的热插拔网络
振即可产生同步参考时钟信号
,
但一般晶振在宽温
不佳
,
且信号质量相对较差
,
可能会导致网络通信不稳定
的情况发生
。
同时由于
PHY
芯片无异步中断输入至主
控芯片
,
因此主控芯片无法直接准确地获取当前
PHY
芯
片工作状态
,
只有不断地轮询
B
使得热插拔状态机软
SR
,
2.2.2
软件设计
需要通过配置其中断屏蔽寄存器使
IEEE802.3
规范
,
nINT
引脚输出异步低有效中断信号
。
LAN8720A
支持
工作条件
(
下频率稳定性通常表现
-55~+85℃
)
LAN8720A
所支持的中断管理配置功能并不涵盖
两种中断模式
:
一种为基础中断模式
(
Primarnterrut
y
I
p
),
另一种为交替中断模式
(
ModeAlternativeInterrut
p
件设计相对复杂
,
需调用定时器资源
,
且轮询处理相对较
为占用系统处理时间
。
表
2
替代中断系统管理表
)。
两种中断模式均在对应屏蔽位置时使
nModeINT
发
中断信号输出的方式
:
在基础中断模式下需要中断源无效
或是读中断源标志寄存器
;
而交替中断模式下则需要在中
断源无效后将对应中断源标志位置
1
或是直接清除对应
的中断屏蔽位
。
由于在网络动态地断线重连过程中
,
需要
根据不同的连接状态多次更改中断屏蔽位的配置以产生
中断信号
,
因此采用交替中断模式设计
。
而基础中断模式
为上电或硬件复位后的默认缺省状态
,
则需在每次上电或
出低有效中断信号
,
而两者的主要不同为它们解除
nINT
3 6
Microcontrollers&EmbeddedSstems
2021
年第
1
期
y
www
.
mesnet
.
com
.
cn
大允许传输单元
(
Maximum
)
限制
,
模拟
TransmissionUnit
大数据量
、
快速收发的应用
场景
。
在测试过程中
,
任意时刻断
开网络连接再恢复
,
断线重连测
试
5
采用轮询方式和异步
0
次
,
中断方式的热插拔设计均能够
快速地恢复收发计数累加
,
且恢
复后的收发计数始终保持相等
,
不存在数据掉包现象
。
通过断
点调试发现
,
每次读
BSR
大约需
,
耗时
2
因此采用轮询方式
0
μ
s
进行断线重连操作时
,
在网络连
,
而轮询周期即为定时查询
20
μ
s
接后等待时间约为轮询周期加
状态下既考虑轮询
BSR
处理对
系统整体的影响
,
又结合上位机
软件对网络连接后通信响应时
图
4
采用异步中断的热插拔网络的状态机设计
件设计相对复杂
,
需在外部使用成本相对较高的晶振
,
并
经过时钟缓冲器产生同步参考时钟
,
以确保信号完整性
,
而晶振及时钟缓冲器工作温度适应性较强
,
适合于宽温工
作应用场景
,
且
PHY
芯片可产生异步中断信号至主控芯
片
,
主控芯片即可快速准确地获取当前
PHY
芯片的工作
状态
,
无需轮询操作
,
使得热插拔状态机软件设计相对简
单
,
不占用系统处理时间
。
两种方式下的热插拔网络设计
对比汇总如表
3
所列
。
表
3
两种方式下的热插拔网络设计对比
通用性
通用
定制
硬件
设计
简单
复杂
软件
设计
复杂
简单
工作
温度
商用
宽温
系统
占用
较多
少
成
本
低
较高
基于
LAN8720A
采用异步中断方式的热插拔网络硬
间的要求
,
统筹考虑设计
。
由此可知
,
采用轮询方式设计的断线重连等待时间相
对采用异步中断方式设计的较长
,
且可能存在
UDP
分包
发送过程中网络断开而无法感知的情况
。
采用异步中断
方式设计的测试验证情况如图
5
所示
。
采用方式
轮询方式
异步中断方式
图
5
采用异步中断方式设计的测试验证情况
可以看出
,
采用轮询方式的热插拔网络设计具有通用
性
,
适用于成本受限且工作条件良好的一般应用场景
;
而
采用异步中
,
断方式的热插拔网络设计具有芯片定制性
,
适用于对网络通信稳定性及工作条件要求较高
,
且对于成
本不敏感的特殊应用场景
。
5
结
语
本文对采用轮询方式和异步中断方式设计的网络热
插拔功能进行了详细的原理论述及全面地对比分析
,
对相
关的网络嵌入式系统设计具有一定的指导意义
。
参考文献
[]
ndImlementationoftheLwIP
gp
4
测试验证
在
PC
机端使用网络调试助手对
UDP
协议通信进行
对发对收测试验证
:
PC
机端以网络调试助手所支持的最
,
小发送间隔为
1m
嵌入
s6KB
包长进行数据流循环发送
;
[]
马亚辉
,
吴凡
,
李林
,
等
.
基于
L2wIP
的热插拔网络嵌入式设计方
,
erScience2001.
/[
TCPIPStackM
]
.Stockholm
:
SwedishInstituteofComut-
p
],():,
法
[
单片机与嵌入式系统应用
,
J.2.
式软件在接收到
U
依次将数据切割为定长数
DP
数据后
,
据包和不足定长的尾包数据
,
分多包返回发送
,
以突破最
[]
张超
,
王志超
,
林岩
,
等
.
基于
L3wIP
协议栈的嵌入式网络控制系
]():
统设计
[
单片机与嵌入式系统应用
,
0
J.201923440.
6
敬请登录网站在线投稿
()
g
2021
年第
1
期
3 7
图
7
新一代外置蓝牙断路器软件组成框图
信号和反馈信号均为
2
存在用电安全隐
20V
交流电压
,
图
6
新一代外置断路器控制模块电机位置检测电路
患
;
控制信号和反馈信号均为简单的电平信号
,
容易人为
,
模拟操作
,
存在断路器被非法控制的隐患
。
配合国家电网
进行新一代电能表
(
带蓝牙功能
)
的推广
,
现场安装接线更
便捷
,
提高了安装效率
,
同时通过加密传输和控制
,
保证了
用电的安全和可靠
,
降低了电网公司运营成本
,
居民用电
也更方便快捷
,
该模组的研制成功对于国网公司具有重要
的社会和经济效益
。
参考文献
[]
电工基本术语
G
/
1BT2900.1
,
2008.
能表接收的蓝牙广播特征码对比一致时
,
随机生成特征码
二
,
通过蓝牙发送给蓝牙断路器模组编码生成电流指纹
,
通过电力线发送给电能表
,
电能表接收电流指纹继续解析
出特征码二
,
如果同自己发送的特征码二一致
,
就确认此
蓝牙断路器为该电能表下的蓝牙断路器
,
自动配对完成
后
,
业务流程上就实现了电能表蓝牙主控模块外置断路
/
器的数据通信
,
蓝牙主控模块接收电能表
DLT698
协议
加密指令
,
经过协议转换后控制断路器开合闸
,
另外蓝牙
模组也可以接收断路器的状态上报
,
经过协议转换并加密
后上传给电能表
。
同时
,
蓝牙断路器支持通过手机
A
pp
对蓝牙断路器模组和蓝牙模块进行
OTA
远程升级
。
软
[]
电气附件家用及类似场所用过电流保护断路器第
1
部分
:
2
[]
低压开关设备和控制设备第
2
部分
:
,
断路器
G3B14048.22008.
用于交流的断路器
GB10963.1
,
2005.
3
结
语
件组成框图如图
7
所示
。
[]
设备用断路器
G4B17701
,
2008.
[]
电能表外置断路器技术规范
Q
/
5GDW11421
,
2015.
本文通过对电能表外置蓝牙断路器模组的需求分析
,
,:
黄波
、
唐玉建
(
初级工程师
)
李明
、
秦晓敏
(
中级工程师
)
主要研究
方向为嵌入式系统
、
智能用电应用
。
()
责任编辑
:
薛士然
收稿日期
:
2020-07-08
研制了新一代外置蓝牙断路器模组
,
解决了有线连接断路
器存在的诸多问题
:
安装接线复杂
、
现场施工难度大
;
控制
/
江来
,
代鑫
.
嵌入式
T
37
[
4
]
孙乐鸣
,
CPIP
协议栈
LwIP
的
[]
徐天纬
,
郁汉琪
,
顾思远
.
两种网络之间的热备冗余实时通信接
5
7982.
:
内部结构探索与研究
[
电子元器件应用
,
J
]
.2008
(
3
)
[]
韩兴会
.
基于
S9TM32
和
LwIP
的无线传感器网络网关研究
[]
索朝举
,
沈沛雨
,
刘静波
,
等
.10STM32
的调频无线发射与接
与应用
[
西安
:
西安工程大学
,
D
]
.2018.
[]
吴云龙
,
程武山
.
基于
S6TM32
的语音识别机械手智能系统设
],():,
口设计
[
单片机与嵌入式系统应用
,
J.2.
]():
计
[
单片机与嵌入式系统应用
,
J.2020
,
2013741.
]():
信技术
[
电子技术与软件工程
,
J.2019192728.
8183.
]:
收系统设计
[
单片机与嵌入式系统应用
,
J.2019
,
19
(
12
)
[]
李晨
,
蒋林
,
刘思平
.
基于
S7TM32
与
LwIP
协议栈的高效通
,
马亚辉
、
吴凡
、
邓浩然
、
李林
(
工程师
)
主要研究方向为高速可靠存
储系统研发
。
()
责任编辑
:
薛士然
收稿日期
:
2020-06-28
[]
周航慈
.
基于嵌入式实时操作系统的程序设计技术
[
8M
]
.2
版
.
北京
:
北京航空航天大学出版社
,
2011.
6 0
Microcontrollers&EmbeddedSstems
2021
年第
1
期
y
www
.
mesnet
.
com
.
cn