stm32f107 dm9161搭配PHY DM9161A 怎么实现网口传输数据啊

2.2.&STM32神舟IV号开发板硬件详解-STM32(初学宝典)神舟IV号开发板
本节将向大家详细介绍神舟IV号开发板的各部分硬件原理与实现。
&2.2.1MCU处理器
STM32神舟IV号选择的是互联型的STM32F107VCT6作为MCU,STM32F107的型号众多,其产品列表如下图所示,作为一款最高端开发板,神舟IV号开发板选用的是外设资源和管脚资源最丰富的100脚LQFP封装的STM32F107VCT6芯片,充分满足企业和广大爱好者的评估开发需求。让用户可以使用STM32F103系列的所有外设,和体验它的强悍功能。
8 STM32F107的产品列表
MCU部分原理图如下图所示,由于此处原理图较大,为了清晰起见,我们按左右分为两幅图片。&
9 神舟IV号MCU部分原理图
上图中的BOOT0,
BOOT1用于设置STM32的启动方式,其对应启动模式如下表所示:&&
BOOT启动模式
从主闪存存储器启动:主闪存存储器被映射到启动空间(0x),但仍然能够在它原有的地址(0x0800
0000)访问它,即闪存存储器的内容可以在两个地址区域访问,0x或0x0800
● 从系统存储器启动(System
memory):系统存储器被映射到启动空间(0x0000
0000),但仍然能够在它原有的地址访问它,神舟IV号属于互联型产品,其原有地址为0x1FFF
B000,神舟系列其它产品原有地址为0x1FFF F000。&
● 从内置SRAM启动:只能在0x2000
0000开始的地址区访问SRAM。
以上提到的SRAM地址0x2000
0000和互联型系统存储器地址0x1FFF B000,非互联型系统存储器地址0x1FFF
F000等是在芯片设计时已经确定不能再更改,可以在对应处理器手册的图表“Figure . Memory
map”中查到。以下两图是分别截取自互联型“STM32F105xx,
STM32F107xx”的手册和非互联型“STM32F103xC, STM32F103xD,
STM32F103xE”的手册注意他们的系统存储器(System memory)地址差异。
互联型产品映射
非互联型产品映射
当选择从系统存储器启动(System
memory)时,神舟IV号可以通过以下某个接口升级固件程序:USART1、USART2(重映像的)、CAN2(重映像的)或USB
OTG全速接口的设备模式(通过设备固件更新DFU协议)。 USART接口依靠内部8MHz振荡器(HSI)运行。【注:CAN和USB
OTG接口只能当外部有一个8MHz、14.7456MHz或25MHz时钟(HSE)时运行。】
如果内部Flash已经烧录了程序,一般正常运行时选择从主闪存存储器启动。
如果要升级固件可以有多种方式,常见的有通过工具烧录和外设接口烧录两种方式。常用的烧录调试仿真工具如JLINK、STLink、Ulink等。
为STM32F107VCT6及神舟IV号开发板上其他芯片提供必要的储能电容,滤波和退耦。为整个系统提供一个干净的电源,保证整个系统的稳定可靠运行。
滤波电容在设计PCB的时候,一般都要接近滤波对象管脚的附近,如果布局太远,就没有滤波效果了,这点是需要注意的,在原理图中是看不出来的。
VDDA与VREF是STM32处理器数字/模拟转换(ADC)电路需要使用到的模拟参考电源和模拟电源输入。
相关管脚定义如下:
在神舟IV号板上,VREF和VDDA电源相关电路如下图所示,为保证其稳定性需要隔离并增加独立的滤波储能电容。这里一般是用磁珠进行隔离,我们神舟开发板是使用一个0欧姆电阻进行一下隔离。
STM32F107内部已经包含了8MHz高速内部RC振荡电路,但是其精准度不是很高,为此我们在外部增加了25MHz的晶振电路,为系统的可靠工作提供时序基准。
STM32F107内部已经包含了40kHz低速内部RC振荡电路LSE,但是其精准度不是很高,为此我们在外部增加了32.768KHz的晶振电路,可以用于驱动独立看门狗和通过程序选择驱动RTC实时时钟。
STM32的VBAT采用CR1220纽扣电池和VCC3.3混合供电的方式,在有外部电源(VCC3.3)的时候,BT1不给处理器的VBAT供电,而在外部电源断开的时候,则由BT1给VBAT供电。这样,VBAT总是有电的,以保证RTC的持续运行以及后备寄存器的内容不丢失。
相关电路如下:
当***了电池后,将JP14的2,3脚使用跳线帽短接。VBAT管脚由电池供电,如没有***电池,将JP14的1,2脚使用跳线帽短接,VBAT管脚由+3.3V系统电源供电。
JTAG/SWD调试下载接口
JTAG(Joint Test Action
Group)联合测试行动小组)是一种国际标准测试协议(IEEE
1149.1兼容)。标准的JTAG接口包括TMS、TCK、TDI和TDO等信号。通过JTAG接口,我们可以烧录和调试程序,神舟IV号的JTAG接口的硬件连接如下图所示,可以与目前主流的JLINK
V8仿真器配合使用。另外STMM32还有SWD接口,SWD只需要最少2跟线(SWCLK和SWDIO)就可以下载并调试代码了,它与JTAG接口是共用的,只要接上JTAG,你就可以使用SWD模式了。
&神舟IV号JTAG/SWD调试下载接口原理图
JTAG/SWD接口的信号定义如下:
&2.2.3 10M/100M以太网接口
STM32神舟IV号开发板的处理器STM32F107内部集成有高性能以太网模块,支持通过以太网收发数据,符合IEEE
802.3-2002标准。该以太网模块灵活可调,使之能适应各种不同的客户需求。该模块支持两种标准接口,连接到外接的物理层(PHY)模块:IEEE
802.3协议定义的独立于介质的接口(MII)和简化的独立于介质的接口(RMII)。适用于各类应用,如交换机、网络接口卡等。&
内部集成的以太网模块符合以下标准:&
● &IEEE
802.3-2002标准的以太网MAC协议&
● &IEEE
的网路精确时钟同步标准&
&AMBA2.0标准的AHB主/从端口&
&RMII协会定义的RMII标准
神舟IV号开发板的处理器STM32F107内部集成的MAC结构图如图表 6
STM32F107内部的MAC结构图所示。
STM32F107内部的MAC结构图
神舟IV号开发板的处理器STM32F107内部集成的MAC有以下特性:
通过外接的PHY接口,支持10/100M位/秒的数据传输速率。&
● 通过兼容IEEE
802.3标准的MII接口,外接高速以太网PHY。&
支持全双工和半双工操作:&
支持符合CSMA/CD协议的半双工操作&
─ 支持符合IEEE
802.3流控的全双工操作&
在全双工模式下,可以选择性地转发接收到的PAUSE控制帧到用户的应用程序&
支持背压流控的半双工操作&
在全双工模式下当输入流控信号失效时,会自动发送PAUSE帧。&
在发送时插入前导符和帧开始数据(SFD),在接收时去掉这些域。&
以帧为单位,自动计算CRC和产生可控制的填充位。&
在接收帧时,自动去除填充位/CRC为可选项。&
可对帧长度进行编程,支持最长为16K字节的标准帧。&
可对帧间隙进行编程(40~96位,以8位为单位改变)&
支持多种灵活的地址过滤模式:&
多达4个48位完美的目的地址(DA)过滤器,可在比较时屏蔽任意字节。&
多达3个48位源地址(SA)比较器,可在比较时屏蔽任意字节。&
64位Hash过滤器(可选的),用于多播和单播(目的)地址。&
可选的令所有的多播地址帧通过&
混杂模式,支持在做网络监测时不过滤,允许所有的帧直接通过。
允许所有接收到的数据包通过,并附带其通过每个过滤器的结果报告。&
对于发送和接收的数据包,返回独立的32位状态信息。&
● 支持检测接收到帧的IEEE 802.1Q
VLAN标签。&
应用程序有独立的发送、接收和控制接口。&
支持使用RMON/MIB计数器(RFC2819/RFC2665)进行强制性的网络统计。&
使用MDIO接口对PHY进行配置和管理。&
● 检测LAN唤醒帧和AMD的Magic
PacketTM帧。&
对IPv4和由以太网帧封装的TCP数据包的接收校验和卸载分流功能。&
对IPv4报头校验和以及对IPv4或IPv6数据格式封装的TCP、UDP或ICMP的校验和进行检查的高级接收功能。&
● 支持由IEEE
标准定义的以太网帧时间戳,在每个帧的接收或发送状态中加上64位的时间戳。&
两套FIFO:一个2K字节的传输FIFO,带可编程的发送阈值,和一个2K字节的接收FIFO,带可编程的接收阈值(默认值是64字节)。&
在接收FIFO的EOF后插入接收状态信息,使得多个帧可以存储在同一个接收FIFO中,而不需要开辟另一个FIFO来储存这些帧的接收状态信息。&
可以滤掉接收到的错误帧,并在存储-转发模式下,不向应用程序转发错误的帧。&
可以转发“好”的短帧给应用程序。&
支持产生脉冲来统计在接收FIFO中丢失和破坏(由于溢出)的帧数目。&
对于MAC控制器的数据传输,支持存储-转发机制。&
根据接收FIFO的填充程度(阈值可编程),自动向MAC控制器产生PAUSE帧或背压信号。&
在发送时,如遇到冲突可以自动重发。&
在迟到冲突、冲突过多、顺延过多和欠载(underrun)情况下丢弃帧。&
软件控制清空发送FIFO。&
在存储-转发模式下,在要发送的帧内,计算并插入IPv4的报头校验和及TCP、UDP或ICMP的校验和。&
支持MII接口的内循环,可用于调试。
DMA(直接内存访问)传输功能&
● 支持PTP功能(Precision Time
Protocol (IEEE1588))
神舟IV号开发板的处理器STM32F107内部以太网模块与外部PHY芯片采用RMII接口的连接图如下所示:
STM32F107以太网RMII连接图
神舟IV号开发板采用高性价比的DM9161A作为10M/100M以太网PHY芯片,采用RMII接口与连接,标准RJ45接口,支持平行交叉网线自适应。其原理图如所示。
图表 15 以太网接口原理图
DM9161A是一款在嵌入式系统中应用的极为普遍的以太网PHY芯片。DM9161A符合IEEE802.3.10BASE-T/100BASE-TX协议,符合ANSIX3T12TP-PMD1995标准,集成10BASE-T,100BASE-TX收发器,支持MII/RMII接口,支持中继模式和节点模式转换,支持全工和半工模式转换,含可触发中断的MII/RMII管理接口,支持低功耗模式,采用0.35纳米
COMS工艺,3.3V供电, 48-pin PQFP小封装(1&1cm)。
STM32神舟IV号开发板的以太网接口对外采用RJ45接口。RJ45接口引脚信号定义如下表所示:
RJ45接口引脚信号定义
RJ45对于德网线的线序排序不同的法有两种,一种是橙白、橙、绿白、蓝、蓝白、绿、棕白、棕;另一种是绿白、绿、橙白、蓝、蓝白、橙、棕白、棕;因此使用RJ45接头的线也有两种即:平行线(直通线)和交插线,如下图所示。神舟IV号开发板使用的DM9161A芯片支持平行线网线和交叉网线自适应,所以无论哪种网线都可以连接到神舟IV号开发板。
&以上硬件配合我们提供的移植好的TCP/IP协议栈代码成功实现了Telnet登陆,HTTP内嵌网页和TFTP文件传输等应用实例。协议同时支持DHCP协议,自动获取IP地址并在液晶屏上显示出来。支持平行交叉网线自适应,一根网线就可以很方便的与路由器或PC连接,连接后可以通过网络访问和控制板上的资源,从而实现以太网远程控制功能。
2.2.4 USB 2.0
神舟IV号开发板含有一个USB 2.0
OTG全速接口,接口速率12Mbps,它既可以作为OTG与其它OTG设备相连通过ID信号协商主从角色;也可以固定作为USB
SL***E从设备与PC等主设备相连实现USB读卡器,USB鼠标,USB固件升级等功能;还可以固定作为USB
HOST连接U盘,USB键鼠等从设备。当作为USB从设备设备时通过D+、D-引脚上的1500Ω上拉电阻可向主机发出设备已连接的信号,并指示设备的工作速度。电阻上拉至D+表示全速运行,电阻上拉至D-表示低速运行。当作为USB主设备时内部D+和D-含有15kΩ下拉电阻用于检测上拉电阻的状态。
OTG就是On The
Go,正在进行中的意思。USB OTG使USB装置摆脱了原来主从架构的限制,实现了端对端的传输模式。USB
OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。OTG两用设备完全符合USB2.0标准,并可提供一定的主机检测能力,支持主机通令协议(HNP)和对话请求协议(SRP)。在OTG中,初始主机设备称为A设备,外设称为B设备。可用电缆的连接方式来决定初始角色。mini-AB插座增添了ID引脚,以用于识别不同的电缆端点。mini-A插头中的ID引脚接地,mini-B插头中的ID引脚浮空。当OTG设备检测到接地的ID引脚时,表示默认的是A设备(主机),而检测到ID引脚浮空的设备则认为是B设备(外设)。系统一旦连接后,OTG的角色还可以更换。主机与外设采用新的HNP,A设备作为默认主机半提供VBUS电源,并在检测到有设备连接时复位总线、枚举并配置B设备。OTG标准为USB增添的第二个新协议称为对话请求协议(SRP)。SRP允许B设备请求A设备打开VBUS电源并启动一次对话。一次OTG对话可通过A设备提供VBUS电源的时间来确定(注:A设备总是为VBUS供电,即使作为外设)。也可通过A设备关闭VBUS电源来结束会话以节省功耗,这在电池供电产品中是非常重要的。例如,在两台OTG设备通过连接互相交换信息时,一台连接在mini-A端,是A设备,默认为主机。另一台是B设备,默认为外设。当在不需要USB通信时,A设备可以关闭VBUS线,此时B设备就会检测到该状态并进入功低耗模式。
USB连接器的外形结构图和管脚线序如下图所示:
  MiniAB
USB连接器的信号定义如下表所示:
表格 3 MiniAB USB连接器信号定义
STM32神舟IV号开发板含有一个USB 2.0
OTG控制器接口特性如下:
● 由USB-IF认证,符合Universal
Serial Bus Specification, Revision2.0标准
完全支持在(OTG_FS控制器的物理层(PHY))USB On-The-Go
Supplement,Revision1.3规范中定义为可选项目OTG协议。
对插入的A-B类设备的辨认(ID线)
支持主机协商协议(HNP)和会话请求协议(SRP)
在OTG应用中,允许主机关闭VBUS以节省耗电
OTG控制器使用内部比较器监视VBUS电平
可以动态的切换主机/设备角色
可以通过软件配置,完成以下设计:
支持SRP协议的USB全速设备(B类设备)
支持SRP协议的USB全速/低速主机(A类设备)
OTG全速双重角色设备
支持全速通信的SOF信号和低速通信的保持有效信号
─ SOF的脉冲可以输出到引脚
SOF在内部连接到定时器2(TIM2)
─ 可配置的帧周期
─ 可配置的帧结束中断
提供省电功能:如在USB挂起时停止系统,关闭数字部分,PHY和DFIFO电源管理部分的内部时钟系统。
提供1.25K字节的专用RAM和高级的FIFO管理
通过软件为不同的FIFO配置不同的RAM区域,以便灵活有效的使用RAM
每个FIFO可以存储多个数据包
─ 允许动态的分配存储区
不限定FIFO的长度一定是2的幂次,以便可以连续的使用存储区
不需要系统的介入就可以保证一个帧(1ms)的最大数据流量。
STM32神舟IV号开发板的USB 2.0
OTG接口的原理图如下图所示,支持从USB接口取电或通过PB8控制对USB设备供电。
图表 17 USB OTG电路接口原理图
2.2.5 触摸TFT彩屏接口&
STM32神舟IV号开发板载有目前比较通用的液晶显示模块接口,支持触摸,其原理图如下:&
图表 18 触摸TFT彩屏接口原理图
STM32神舟IV号开发板通过GPIO总线对屏进行进行访问操作,实现图形界面的显示。神舟系列的2.8/3.2/4.3/7寸LCD触摸屏支持触摸功能,LCD模块上有触摸芯片,将电阻式触摸屏的模拟信号转化为数字信号,处理器通过SPI接口读取芯片转换后的数字,支持查询方式和中断方式。
此外,2.8/3.2/4.3/7寸LCD触摸屏模块上还集成了SPI
FLASH和SPI接口的SD卡座(STM32神舟IV号板载了一个SPI FLASH和SD卡座)。
音频解码电路&
STM32神舟IV号开发板上使用了PCM1770这款具有耳机放大器的24位低功耗立体声音频DAC芯片提供音频播放功能。处理器通过I2S接口(处理器的I2S2)传送音频信号到PCM1770,由它进行解码输出到J3音频座。而PCM1770的配置接口与处理器的SPI3连接,处理器通过SPI接口访问PCM1770的寄存器,实现配置和控制功能。
图表 19 音频解码电路原理图
D/A芯片PCM1770通过I2S2接口与STM32F107VCT6处理器连接。音频信号通过I2S2接口传到D/A芯片,转换成音频信号播出。相关管脚定义如下:
STM32F107VCT6处理器通过SPI3接口访问DA芯片PCM1770,对它内部数据进行读取和配置。相关管脚定义如下:
STM32神舟IV号开发板载有标准的SD卡接口,有了这个接口,我们就可以外扩大容量存储设备,可以用来记录数据。其原理图如下:&
图表 20 SD卡接口原理图
SD卡我们使用的是SPI模式通信,SD卡的SPI接口连接到STM32的SPI1上,SD_CS接在PD11上,STM32神舟IV号开发板上的SPI1由SD卡和W25X16共用,他们通过不同的CS片选信号来分时复用。
&315M无线模块接口
STM32神舟IV号开发板板载了2款无线模块的接口,分别是315M无线模块和2.4G无线模块NRF24L01+。其中315M无线模块,可以接受遥控器的信号,当遥控的一个按键按下时,对应的无线模块的D0~3管脚变为有效。需要指出的是,无线模块当输出为高电平有效。而神舟IV号通过三极管将315M无线模块与板上的按键进行了资源复用。
当无线模块的VT脚有效(低电平)时,表示无线模块接收到遥控的按键信号;当VT管脚无效(高电平)时,表示无线模块没有接收到遥控的按键信号,与无线模块连接的几个管脚的电平变化是按键引起的。
图表 21 315M无线接口原理图
&2.4G无线模块接口
STM32神舟IV号开发板板载的另一个无线模块为2.4G数传模块NRF24L01+(或
NRF24L01)模块,NRF24L01+模块的最大通信速率为2Mbps。NRF24L01+无线模块通过SPI3与STM32F107VCT6相连,其接口原理图如下所示。
图表 22 2.4G无线接口原理图
每块STM32神舟IV号只能使用1个2.4G无线模块,如果要实现相互通信,必须要2块开发板进行配合才行。&
2.2.10 两组CAN总线接口
STM32神舟IV号开发板板载了2组CAN总线接口,所以可以在外部将CAN1和CAN2连接起来完成CAN总线实验。STM32F107VCT6这款处理器集成了CAN总线接口,在开发板上我们使用了TI公司的3.3V电压的CAN总线收发器来实现CAN物理层,如下图所示。CAN总线收发器型号为VP230。因为有2个CAN接口,所以一个开发板就可以实现CAN通信一收一发的实验。
图表 23 CAN总线接口原理图
&RS232C串口
STM32神舟IV号开发板载了2个串口,串口1和串口2,位置分别如下图所示。
串口1可通过跳线选择支持RS-232接口或USB
OTG接口,跳线定义如下:
其中串口2可通过跳线选择支持RS-232接口或RS-485接口,跳线定义如下:
串口1和串口2的原理图如下图所示:
& 图表 24 RS232C串口原理图
2.2.12 485总线接口
STM32神舟IV号开发板载有RS485物理芯片,它与处理器的UART2连接,与串口2复用,可通过跳线选择支持RS-232接口或RS-485接口,跳线定义如下:
RS485的原理图如下图所示:
图表 25 RS485原理图
&STM32神舟IV号默认是***了RS-485接口的120欧终端匹配电阻。对应上图的R43,请依据实际应用选择是否***此匹配电阻。
2.2.13 SPI
STM32神舟IV号开发板载有SPI-FLASH芯片W25X16,该芯片的容量为2M字节(16MBit),与AT45DB161属于同一级别,其原理图如下:&
图表 26 SPI FLASH电路原理图
W25X16也是共用了SPI1,注意由于神舟IV号上有W25X16和SD卡公用了SPI1,通过不同的CS进行区分,请勿同时使用使这两个接口的CS有效,引起芯片读写访问失败。&&&
&2.2.14 &I2C
STM32神舟IV号自带了24C02的EEPROM芯片,该芯片的容量为2Kbit,也就是256个字节,对于我们普通应用来说是足够了的。你也可以选择换大的芯片,因为在原理上是兼容24C02~24C512全系列的EEPROM芯片的。其原理图如下:&
图表 27 EEPROM原理图
这里我们把A0~A2均接地,对24C02来说也就是把地址位设置成0了,写程序的时候要注意这点。
蜂鸣器电路
神舟IV号开发板载有蜂鸣器,与315M的无线模块VT脚复用,当315M的无线遥控的任意按键按下时蜂鸣器鸣响;器鸣器连接到了处理器的PA3管脚,也可以由处理器控制其鸣响,当处理器的PA3管脚输出低电平时蜂鸣器开始鸣响,反之处理器的PA3管脚输出高电平或OD开漏时蜂鸣器停止鸣响,其原理图如下:&
图表 28 蜂鸣器电路
STM32神舟IV号开发板使用RC加按键来实现手动复位和上电复位。STM32芯片内部已经集成有上电复位和电压检测复位电路,所以外部的复位主要是实现手动复位功能,其原理图如下。
2.2.17 LED指示灯
STM32神舟IV号开发板上总共有5个LED指示灯,其中1个是电源指示灯,其它4个是用户LED指示灯。用户LED指示灯由GPIO管脚控制LED灯的亮灭,当GPIO管脚输出低电平时,LED指示灯亮。反之,当GPIO管脚输出高电平时,LED指示灯灭。
这四个LED指示灯分别由PD2、PD3、PD4和PD7控制。
LED指示灯电路
STM32神舟IV号STM32开发板总共有4个功能按键,分别是WAKEUP按键和TAMPER按键及两个用于自定义功能按键,在不使用第二功能的情况下,这四个按键都可以作为通用的按键,由用户自定义其功能。这四个按键分别与PC4、PB10、PC13和PA0四个GPIO管脚连接,当按键按下时,对应的GPIO管脚为低电平,反之,当没有按键按下时,对应的GPIO管脚为高电平。其中PA0
(STM32的WKUP引脚)可以作为WK_UP功能,它除了可以用作普通输入按键外,还可以用作STM32的唤醒输入。PC13可以实现备份区寄存器的入侵功能。
图表 30 按键输入电路
RTC实时时钟电路
STM32神舟IV号开发的STM32处理器内部带有RTC实时时钟,使用我们的代码可以实现年月日时分秒及星期等计算与输出功能。
内部的RTC实时时钟在系统正常运行时使用系统的3.3V电源,而在系统断电时则电池供电保证时间信息持续不丢失。其供电VBAT采用CR1220纽扣电池,相关电路如下:
电位器AD电路
STM32神舟IV号开发板载有电位器可以实现AD模数转换实现。其原理图如下:&
图表 31 电位器AD电路
AD、DA转换和PWM接口
STM32神舟IV号开发板将处理器的两组AD和DA管脚连接到了接线端子上方便用户使用。其原理图如下:&
&2.2.22 &电源电路
STM32神舟IV号STM32开发板支持的供电方式主要有三种,分别是:
USB接口供电,最大500mA
外部直流DC5V供电
JLINK V8供电,包括5V或3.3V
如上图所示,当CON1电源开关拨到右侧位置时,神舟IV号开发板由外部DC5V接口供电。当CON1电源开关拨到左侧位置时,神舟IV号开发板由USB接口的VBUS供电。板上的电源转换芯片将输入的5V电源转换成3.3V的电源,作为处理器和相关外围电路的工作电源。下图为神舟IV号开发板的5V电源转换成3.3V的电路。
STM32神舟IV号开发板将除晶振占用的IO管脚外的所有GPIO的使用标准双排插针引出,方便大家的实验和测试,调试其他模块或功能扩展。&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。后使用快捷导航没有帐号?
查看: 6266|回复: 4
读PHY芯片DM9161寄存器的LINK STATUS位始终显示为可用连接没有建立
在线时间7 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
最近用STM32F107+DM9161+LWIP实现一个tcpip的通讯,但是在写DM9161驱动的时候,当复位DM9161,使能自协商模式后,检测连接是够建立,也就是BMSR的link status位始终为0,我的PHY地址为0.网上有说地址设置为0的时候DM9161处于掉电模式,请问这种说法确切吗?如果是真的可能我就是这个原因了,如果不是会不会是硬件电路设计的问题呢?求高手赐教。
&&&&&&&&&&
在线时间7 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
上面打错了,使能自协商模式后,检测DM9161的可用连接始终没有建立
在线时间6 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
一粒金砂(中级), 积分 60, 距离下一级还需 140 积分
解决DM9000 DM9161 问题
在线时间3 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
D***ICOM大陆总代理,免费提供技术支持和相关开发资料。
联系人:沈先生&&QQ:
在线时间2 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 30, 距离下一级还需 170 积分
一粒金砂(中级), 积分 30, 距离下一级还需 170 积分
D***ICOM大陆技术支持。QQ:
Powered by
逛了这许久,何不进去瞧瞧?stm32f207和dm9161a的以太网实现方案_单片机_中国百科网
stm32f207和dm9161a的以太网实现方案
    引言随着经济的迅猛发展,用电需求量及电力负荷急剧增大,谐波作为目前电网中影响最为重要的一项指标,对电力系统的影响越来越产重。通过网络传输采集和分析谐波数据,以实现对谐波的有效监测,便于更有效地控制谐波对电子系统的危害。本文给出了基于stm32f207及dm9161a的以太网具体实现方案,为电力系统设备提供便捷高效的网络实现方法。1 硬件的实现基于stm32f207的以太网接口实质是内部的mac单元控制phy的过程,两者通过mii/rmii接口传送数据。mac(media access control)即媒体访问控制子层协议。该协议位于osi七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。phy(physical layer)是物理接口收发器,它实现物理层的数据编码与解码,直接提供可使用的数据流到mac层。mii(media independent interface,媒体独立接口)是指在不对mac硬件重新设计或替换的情况下,任何类型的phy设备都可以正常工作;rmii(reduced media independant interface,简化媒体独立接口),是标准的以太网phy接口之一。mii数据接口总共需要16个信号,由于其信号线较多,在实际中应用较繁琐。而rmii只需要7根信号线,大大减少了实际的物理连线,有效地降低了硬件的复杂度及成本。因此,此次实现采用rmii物理层接口。意法半导体公司的stm32f207系列处理器自带ieee802.3的mac,只需增加phy物理层芯片就可以连接到tcp/ip网络,此次实现是基于stm32f207zgt6处理器。stm32f207以太网接口的特性如下:◆支持10 mb/s和100 mb/s速率;◆专用的dma控制器能够高速地传输数据;◆支持vlan模式;◆半双工/双工模式;◆支持mac控制层;◆内置32位crc校验。stm32f207的以太网连接方式有mii和rmii两种接口,以下以rmii接口方式概述dm9161a与stm32f207处理器的硬件连接。stm32f207提供标准的rmii硬件接口,只需要按照数据手册的标识进行对应连接即可,此次实现的连接方式如表1所列。dm9161a的实现电路如图1所示。dm9161a的rmii_ref_clk信号由stm32f207的内部mco提供,在简化了硬件设计的同时也可以减少硬件成本。hr911105a是电路的网络接口。网络控制部分的电路板如图2所示。2 软件的实现此部分的主要工作是在硬件平台的基础上实现tcp/ip协议栈,由于tcp/ip协议栈较复杂,功能实现比较困难,一般选择成熟的tcp/ ip协议栈进行移植,此次选择开源并且较成熟的lwip以太网协议栈。lwip(light weight ip)是瑞士计算机科学院开发的一套用于嵌入式系统的开放源代码tcp/ip协议栈,可移植性强,对资源要求较低,在实现tcp/ip协议主要功能的基础上减少对ram的占用。一般它只需要几百kb的ram和40 kb左右的rom就可以运行,这使得lwip协议栈适合在低端的嵌入式系统中使用。移植工作在st公司提供的stm32f207以太网接口驱动的基础上进行,针对dm9161a芯片更改部分底层驱动代码,包括时钟配置、端口配置及phy地址配置等,移植工作一般需要几个小时即可完成。lwip提供了在tcp/ip协议栈中比较常用的tcp及udp两种功能。tcp是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(transp ort layer)通信协议;udp是osi参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。tcp一般用于对数据可靠性要求较高,但是数据传输速度较低的情况。而udp的传输速度较快,但是可靠性较低,需要应用层保证数据到达的有效性,而在此应用中需要传输的数据量较小,但是对可靠性要求较高,因此选择tcp通信模式。lwip提供了两套api:底层的基于回调(callback)的raw api和高层的顺序模型的api(类似bsd socket)。顺序模型的api为普通的顺序程序提供使用协议栈的api,和bsd风格的api很相似,也是基于阻塞的open-read-write-close模式。鉴于tcp/ip协议栈本身就基于时间,所以tcp/ip代码和应用程序的代码必须在不同的线程中,因此此种模式需要提供操作系统的支持。而raw api可以让应用程序和tcp/ip协议栈代码结合得更紧密。程序的执行也是基于事件的,使用回调函数的机制。这种方式tcp/ip代码和应用代码运行在同一个线程中,因此这种模式可以在没有操作系统支持的情况下使用。实际上,顺序模型的api也是基于raw api实现的。此次实现使用的是raw api,降低对硬件及软件资源的需求,而raw api是基于事件驱动的,在数据的响应速度上也存在一定的优势。raw api的操作方法与顺序模型基本类似,只是程序的运行模式不一样,需要采用回调式的编程思想。基本动作包括建立连接、发送数据、接收数据、关闭连接4类,每一类根据不同的需求提供了不同的接口函数。结语经过测试,在stm32f207处理器及dm9161a硬件平台上移植lwip协议栈可以实现tcp、udp等功能并稳定地运行,为后续基于此平台开发电力系统的通信网络提供良好的基础。
Copyright by ;All rights reserved.

参考资料

 

随机推荐