⽹络通信实验——STM32F103Z灰尘的危害 E
⼀、DM9000
DM9000 有多种型号,有 100 引脚和 48 引脚的, ALIENTEK 战舰 STM32F103 V3 开发板选择的是 48 引脚的 DM9000,型号为
DM9000CEP。本教程讲解的DM9000 的内容都是针对 48 引脚的
1、 DM9000 中断引脚电平设置
DM9000 的 34(INT)引脚为考研科目时间安排 中断输出引脚,默认情况下该引脚⾼电平有效。可以通过设置DM9000 的 20(EECK)引脚来改变 INT 的有效
电平,当 EEC诗歌英文 K 拉⾼后,INT 低电平有效,否则的话 INT 是⾼电平有效的。开发板上 R66 电阻为 EECK 的上拉电阻,因此,战舰
STM32F103V3 开发板上 DM9000 的 INT 引脚是低电平有效的,这点⼀定要注意到!
2、 DM9000 数据位宽设置
前⾯我们提了⼀下 DM9000 ⽀持 8 位和 16 位两种数据位宽,可以通过 DM9000 的 21(EECS)引脚设置其数据位宽,当 EECS 上拉的
时候 DM9000 选择 8 位数据位宽,否则的话选择 16 位数据位宽。开发板上的 R65 电阻为 EECS 的上新年春节对联大全 拉电阻,但是此电阻并未焊接一个人的七夕 !
因此,战舰STM32F103 V3 开发板上的 DM9000 芯⽚的数据位宽为 16 位。
3、 DM9000 直接内存访问控制(DMAC)
DM9000 ⽀持 DMA ⽅式以简化对内部存储器的访问。在我们编程写好内部存储器地址后,就可以⽤⼀个读/写命令伪指令把当前数据加
载到内部数据缓冲区,这样,内部存储器指定位置就可以被读/写命令寄存器访问。存储器地址将会⾃动增加,增加的⼤⼩与当前总线操作
模式相同(8-bit 或 16-bit),接着下⼀个地址数据将会⾃动加载到内部数据缓冲区。内部存储器空间⼤⼩为 16K 字节。前 3K 字节单元
⽤作发送包的缓冲区,其他 13K 字节⽤作接收包的缓冲区。所以在写存储器操作时,如果地址越界(即超出 3K 空间)如何办理退休手续 ,在 IMR 寄存器
bit7 置位的情况下,地址指针将会返回到存储器 0 地址处。同样,中国植树节是哪一天 在读存储器操作时,如果地址越界(即超出 16K 空间),在 IMR 寄存
器 bit7 置位的情况下,地址指针将会返回到存储器0x0C00 地址处。
4、 DM9000 数据包发送
DM9000 有两个发送数据包: index1 和 index2,同时存储在 TX SRAM 中。发送控制寄存器(02h)控制循环冗余校验码(CRC)和填充
(pads)的插⼊,其状态分别记录在发送状态寄存器I(03H)和发送状态寄存器 II(04H)中。发送器的起始地址为 0x00H,在软件或硬件复位
后,默认的数据发送包index1。⾸先,将数据写⼊ TX SRAM 中,然后,在发送数据包长度寄存器中把数据字节数写⼊字节计数寄存器。
置位发送控制寄存器(02H)的 bit0 位,则 DM9000 开始发送 index1 数据包。在 index1 数据包发送结束之前,数据发送包 index2被移
⼊ TX SRAM中。在 index1数据包发送结束后,将 index2数据字节数写⼊字节计数寄存器中,然后,置位发送控制寄存器(02H)的 bit0
位,则 index2 数据包开始发送。以此类推,后⾯的数据包都以此⽅式进⾏发送。
5、宿舍管理员 DM9000 数据包接收
RX SRAM 是⼀个环形数据结构。在软件或硬件复位后, RX SRAM 的起始地址为 0X0C00。每个接收数据包都包含有 CRC 校验域,数
据域,以及紧跟其后的 4 节包头域。 4 字节包头格式为: 01h、状态、 BYTE_COUNT 低、 BYTE_COUNT ⾼。请注意:每个接收包的
起始地址处在适当的地址边界,这取决于当前总线操作模式(8bit 或者 16bit)。
6、DM9000⼀般是挂载在STM32的FS网页微信登陆 MC上的
⼆、TCP/IP 协议简介
三、LWIP 简介
本文发布于:2023-04-21 04:16:21,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/82/507027.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |