本文是关于计算机网络的考研复习笔记,重点涵盖了网络体系结构、定义、组成、功能以及网络类型的划分。同时,还讨论了网络标准化过程中的RFC文档和相关组织,以及网络性能指标如速率、带宽、吞吐量和时延。 计算机网络是由硬件、软件和协议三大部分组成的。硬件包括主机、通信链路、交换设备和通信处理机等,软件涉及网络操作系统、邮件程序等,而协议是网络的核心,规定了数据传输的规则。网络定义为互连的、自治的计算机集合,其中的计算机通过通信链路连接,实现数据传输和资源共享。 计算机网络的工作方式分为边缘部分和核心部分。边缘部分由用户主机构成,用于通信和资源共享;核心部分由网络和路由器组成,提供连通性和交换服务。网络由通信子网和资源子网组成,前者负责数据传输和交换,后者实现资源共享。 网络类型按地理范围划分,包括局域网、城域网、广域网和互联网。标准化工作主要由国际标准化组织ISO、国际电信联盟ITU、电气电子工程师协会IEEE以及Internet工程任务组IETF负责,其中IETF通过RFC文档制定因特网标准。 网络性能指标中,速率是数据传输的速度,单位为比特每秒(bps)。带宽则表示网络通信线路的数据传输能力,通常以比特每秒为单位。吞吐量是在一定时间内通过网络的数据量,受到网络带宽的限制。时延是指数据从发送到接收所需的时间,包括处理、排队、传输和传播时延。 在实际网络应用中,如P2P文件传输,吞吐量受限于最小的传输速率,即接入网的传输速率。当多个下载同时进行时,核心网络中的共享链路可能成为瓶颈,导致端到端吞吐量下降。 总结来说,这篇复习笔记详细介绍了计算机网络的基本概念、结构、功能和性能评估,为准备计算机考研的学生提供了全面的理论基础。理解这些知识点有助于深入掌握网络原理,为后续的学习和实践打下坚实的基础。
2024-09-08 16:08:19 11.45MB 网络 网络
1
算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用算法笔记 可供各学校计算机上机复试及各OJ平台刷题使用
2024-09-05 00:04:21 133.18MB 算法笔记 可供各学校计算机上机复
1
STM32 F103C8T6是意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M3内核的微控制器,广泛应用于各种嵌入式系统设计。在这个学习笔记中,我们将关注如何使用STM32 F103C8T6通过IIC(Inter-Integrated Circuit)通信协议与MLX90614红外非接触温度计进行数据交互。 我们需要了解IIC通信协议。IIC是一种多主机、双向二线制同步串行接口,由Philips(现NXP)公司在1982年开发,主要用于在系统内部或不同设备之间传输数据。它的主要特点是仅需要两条信号线——SDA(Serial Data Line)和SCL(Serial Clock Line),并支持主从模式,可以连接多个从设备。 MLX90614是一款高精度的红外非接触温度传感器,它能测量环境和物体的表面温度,并以数字方式输出数据。该传感器内置了一个测温元件和一个微处理器,能够计算温度并存储在内部寄存器中。通过IIC接口,我们可以读取这些寄存器的值,从而获取温度数据。 配置STM32 F103C8T6与MLX90614的IIC通信,你需要做以下几步: 1. **GPIO配置**:设置STM32的IIC SDA和SCL引脚为复用开漏输出模式,通常为PB6(SCL)和PB7(SDA)。 2. **时钟配置**:为IIC外设分配合适的时钟源,如APB1的时钟,根据MLX90614的数据手册设置合适的时钟速度。 3. **初始化IIC**:配置IIC控制器,包括启动条件、停止条件、应答位、数据传输方向等参数。 4. **寻址MLX90614**:发送IIC起始信号,然后写入MLX90614的7位设备地址(加上读/写位),等待应答。 5. **读写操作**:根据需求选择读或写操作。写操作时,发送寄存器地址,然后写入数据;读操作时,先发送寄存器地址,然后读取返回的数据,注意在读取数据后需要发送一个应答位,但最后读取的数据不需要应答。 6. **错误处理**:在通信过程中,需要检查并处理可能发生的错误,如超时、数据不匹配等。 7. **结束通信**:完成数据交换后,发送IIC停止信号,释放总线。 理解以上步骤后,你可以使用STM32的标准库或HAL库来实现IIC通信功能。标准库提供底层的寄存器级操作,而HAL库则提供了更高级别的抽象,使代码更易读、易移植。 在实际应用中,可能还需要考虑一些额外因素,如信号线的上拉电阻、通信速率与距离的平衡、抗干扰措施等。同时,要确保MLX90614的电源和接地正确连接,以及其工作电压与STM32的兼容性。 总结来说,这个学习笔记主要涵盖了STM32 F103C8T6如何通过IIC协议与MLX90614红外非接触温度计进行通信的详细过程。通过对IIC协议的理解和STM32的配置,可以实现从温度计获取温度数据的功能,这对于开发涉及环境监测、智能家居等领域的产品非常有用。
2024-08-29 14:14:17 6.04MB stm32 网络 网络
1
### 三菱FX3U系列PLC编程学习笔记 #### 第一章:PLC基础应用介绍 **1.1 PLC输入输出接线** - **颜色标识**:正极为棕色,负极为蓝色,信号线通常为黑色。 - **接线类型**: - **漏型接法(NPN)**:电流从输出端流出,适用于NPN类型的传感器或开关。 - **源型接法(PNP)**:电流从输出端流入,适用于PNP类型的传感器或开关。 **1.2 行程开关接线** - **漏型接线**:行程开关连接到PLC的输入端,外部电源的负极连接到公共端。 - **源型接线**:行程开关连接到PLC的输入端,外部电源的正极连接到公共端。 **1.3 外部电源接线** - **漏型接法**:外部电源的负极连接到PLC的公共端。 - **源型接法**:外部电源的正极连接到PLC的公共端。 **1.4 输出端接线** - **小灯接线**:直接将小灯连接到输出端。 - **中间继电器接线**:通过中间继电器控制更大的负载。 - **交流接触器接线**:通过交流接触器控制电机或其他大功率设备。 #### 第二章:三菱FX3U基础介绍 **2.1 编程语言及软元件介绍** - **2.1.1 编程语言** - **指令表(IL)**:类似于汇编语言,易于编写但不太直观。 - **梯形图(LAD)**:类似于传统的继电器电路,直观且易于接受。 - **顺序功能图(SFC)**:以流程为主线,清晰有序,弥补了梯形图在顺序控制方面的不足。 - **功能块图(FBD)**:适用于复杂系统的控制逻辑设计,具有良好的可视化效果。 - **结构化文本(ST)**:类似于BASIC或C语言,适合于高级编程,但要求操作者具备一定的编程能力。 - **2.1.2 PLC软元件介绍** - **输入继电器(X)**:编号为X000至八进制编号。 - **输出继电器(Y)**:编号为Y0000至八进制编号。 - **辅助继电器(M)**:编号为M0至十进制编号。 - **定时器(T)**:编号为T0起始。 - **计数器(C)**:编号为C0起始。 - **数据寄存器(D)**:编号为D0起始。 - **其他软元件**:状态(S),变址寄存器(V、Z),指针(P、I),高速计数器(C235~)。 **2.2 特殊辅助继电器** - **2.2.1 触点利用型** - **M8000**:运行监视,PLC运行时为ON,停止时为OFF。 - **M8002**:初始化脉冲,仅在PLC启动的第一个扫描周期为ON。 - **M8011~M8014**:分别为10ms、100ms、1s、1min的时钟脉冲。 - **M8005**:电池电压降低时变为ON,提示更换电池。 - **2.2.2 线圈驱动型** - **M8030**:电池电压降低LED熄灭。 - **M8033**:PLC停止后,输出继电器状态保持不变。 - **M8034**:禁止所有输出。 - **M8039**:根据D8039指定的时间进行工作。 #### 第三章:指令入门应用 **3.1 位指令应用** - **3.1.1 边沿触发指令** - **|↑|**:上升沿触发。 - **|↓|**:下降沿触发。 - **3.1.2 置位复位指令** - **SET**:无需自锁即可保持状态。 - **RSET**:复位指令。 - **ZRST**:连续复位多个元件。 **3.2 定时器与计数器指令** - **3.2.1 定时器** - **通电延时定时器**:通电后延时一定时间后输出。 - **断电延时定时器**:断电后延时一定时间后输出。 - **3.2.2 计数器** - **增计数器**:每次输入增加时计数值增加。 - **减计数器**:每次输入增加时计数值减少。 #### 第四章:基本指令的应用 **4.1 数据传输与转换** - **4.1.1 MOV传送指令** - **16位MOV**:将16位的数据从源地址传送到目标地址。 - **32位DEMOV**:将32位的数据从源地址传送到目标地址。 - **4.1.2 BCD转换** - **BCD指令**:将二进制数转换为BCD码。 - **BIN指令**:将BCD码转换为二进制数。 **4.2 四则运算指令应用** - **ADD**:加法指令。 - **SUB**:减法指令。 - **MUL**:乘法指令。 - **DIV**:除法指令。 **4.3 触点比较与比较指令** - **CMP**:比较两个数值大小,并根据比较结果输出相应的触点状态。 - **ZCP**:三个数值之间的比较,当第三个数值介于前两个数值之间时,输出为ON。 **4.4 时钟指令应用** - **TRD**:读取内部时钟数据。 - **年月日时分秒星期**:分别对应D0至D6中的数据。 - **HTOS**:将小时、分钟、秒的数据转换为时间戳格式。 以上内容涵盖了三菱FX3U系列PLC的基础知识和常用指令的应用方法,对于初学者来说是非常宝贵的学习资料。通过学习这些基础知识,可以帮助理解和掌握PLC的工作原理和编程技巧,为进一步深入学习和实践打下坚实的基础。
2024-08-27 14:35:18 41.95MB 编程语言
1
准比例微分(PD)控制器,也称为准比例积分微分(PR)控制器,是一种常见的控制算法,常用于自动化系统和过程控制中。它结合了比例控制器的即时响应和微分控制器对未来误差的预测能力,但不包含积分部分,因此避免了积分饱和和超调等问题。在数字信号处理器(DSP)和单片机中实现准PR控制器,可以有效地提高系统的稳定性和控制精度。 在提供的"myPR.c"和"myPR.h"文件中,我们可以预见到一个已经封装好的准PR控制器函数。通常,这样的函数会接受几个关键参数来定义控制器的行为: 1. **Kp(比例增益)**:这是控制器对当前误差的响应程度。比例增益越大,控制动作越剧烈,系统的响应速度更快,但也可能增加系统的振荡。 2. **Kr(微分增益)**:微分增益决定了控制器对误差变化率的反应。微分作用有助于提前预测误差并减少超调,改善系统的动态性能。 3. **Ts(采样时间)**:这是控制系统采样的周期,决定了控制器更新其输出的频率。合适的采样时间对于保证系统稳定性至关重要。 4. **wc(截止频率)**:这是微分部分的截止频率,决定了微分作用的强度和范围。过高可能会导致系统不稳定,过低则可能减弱微分效果。 5. **wo(自然频率)**:与系统的固有频率有关,用于调整控制器的响应特性,确保系统在期望的频率范围内工作。 在TI的SOLAR库中未找到此函数,意味着这可能是一个自定义实现,适用于特定的应用场景或为了满足特殊的需求。用户可能需要自行编译和测试这个函数,以适应他们的硬件平台和控制任务。 在实际应用中,设计和调整这些参数是一个迭代过程,通常通过模拟或实地试验来完成。开发者需要考虑系统的稳定性、响应速度、抗干扰能力和目标性能指标。在单片机或DSP中实现准PR控制器时,还需要注意计算资源的限制,如处理速度、内存大小等,确保代码优化且能够在有限的硬件资源下高效运行。 "myPR"代码库提供了一个方便的工具,使开发者能够快速集成准PR控制器到他们的控制系统中,通过调整参数来优化控制性能。无论是用于学术研究还是工业应用,理解并熟练掌握这种控制器的原理和应用都将极大地提升项目实施的成功率。
2024-08-26 17:12:31 957B 学习笔记
1
在小型校园网项目配置中,网络拓扑设计是至关重要的,它决定了网络的稳定性和效率。在这个配置笔记中,我们看到主要使用了思科的设备,并且涉及到了VLAN、VRRP以及端口配置等多个核心知识点。 VLAN(虚拟局域网)被广泛用于分割网络,提高安全性并优化流量。在配置中,创建了多个VLAN,如10、20、30、40、100、5和7。每个VLAN都分配了一个IP地址作为该VLAN内的默认网关,例如VLAN10的网关为192.168.10.254。通过批量创建VLAN,可以更有效地管理大量的VLAN。 VRRP(虚拟路由冗余协议)被用于实现网关的高可用性。在每个VLAN接口上,配置了VRRP组,例如VLAN10的VRRP组10,设置了虚拟IP地址192.168.10.252作为虚拟网关。VRRP允许在网络中的多台设备之间共享一个虚拟IP地址,当主设备故障时,备份设备自动接管,确保网络服务不中断。在配置中,还指定了每个VRRP组的优先级(120),以确定在正常情况下哪个设备是主设备。同时,通过配置接口跟踪,如果连接到特定接口(如g0/0/1和g0/0/3)的状态发生变化,VRRP会相应地调整优先级,确保故障切换的及时性。 接下来,端口配置是确保数据正确传输的关键步骤。GigabitEthernet0/0/1和GigabitEthernet0/0/3被配置为接入端口,分别连接到VLAN5和VLAN7,这样来自这两个VLAN的设备可以通过这些端口通信。Eth-Trunk 1(以太网链路聚合)被创建来实现多个物理接口的聚合,增加带宽并提供链路冗余。配置Trunk模式允许所有VLAN的流量通过,确保了不同VLAN间的数据传输。 通过创建Eth-Trunk 1并将其与GigabitEthernet0/0/2端口关联,可以将多个物理链路聚合为一个逻辑链路,提高链路带宽,同时通过链路聚合实现负载均衡和故障恢复。 这个小型校园网项目配置涉及到了网络基础架构的核心要素,包括VLAN划分、VRRP高可用性设置、端口配置和链路聚合,这些都是构建高效、稳定和可扩展网络的关键技术。这样的配置不仅能满足校园内部不同部门或区域的网络隔离需求,还能提供冗余路径,确保网络服务的连续性和可靠性。在实际应用中,还需要考虑其他因素,如安全策略、QoS(服务质量)和网络监控等,以实现全面的网络管理。
2024-08-24 13:30:21 557KB 思科 网络拓扑
1
### 黑马点评项目概述及关键技术点 #### 一、项目背景与目标 黑马点评项目是一个结合了多种技术栈的实战项目,旨在帮助学习者掌握并应用Java、Redis等相关技术来构建高性能、高并发的应用系统。项目的核心在于利用Redis解决传统数据库在高并发场景下的性能瓶颈问题,并通过一系列优化措施提高系统的整体性能。 #### 二、项目关键知识点详解 ##### 1. Redis在项目中的应用 - **Redis基础** - 数据结构:Redis提供了五种数据结构,包括字符串(String)、散列(Hash)、列表(List)、集合(Set)以及有序集合(ZSet),这些数据结构能够满足项目中不同场景的需求。 - 命令操作:例如GET、SET、HGETALL、LPUSH等,了解并熟练使用这些命令对于高效开发至关重要。 - **Redis高级特性** - **分布式ID生成**:项目中使用Redis生成全局唯一ID,这是一种常见的应用场景,通常采用递增的方式来实现。 - **分布式锁**:尽管本文档未提及自研分布式锁的内容,但理解其实现原理(如使用SETNX指令或RedLock算法)对于保证分布式环境下的数据一致性非常重要。 - **消息队列**:虽然文档中提到了Redis版消息队列存在局限性,但在某些简单场景下仍然可以使用,了解其基本用法是有益的。 - **缓存穿透**:文档提到项目中采用了存储空值的方式来解决缓存穿透问题,这是一种常见的解决方案,除此之外,还可以使用布隆过滤器来进一步优化。 - **Redis工具类封装**:为了提高代码的可维护性和重用性,项目中通常会对Redis的操作进行封装,形成一套易于使用的工具类。 ##### 2. 用户签到功能实现 - **业务流程设计**:用户签到功能涉及到用户的连续签到记录、签到奖励等机制的设计,这需要对业务逻辑有深入的理解。 - **技术选型**:使用Redis来存储用户的签到记录,可以充分利用Redis的数据结构和原子操作特性,提高数据处理的效率和准确性。 - **实现细节**:例如如何利用Redis的ZSet数据结构来记录用户每天的签到时间戳,如何统计用户的连续签到天数等。 ##### 3. 环境搭建与部署 - **数据库初始化**:通过导入SQL文件来初始化数据库,确保所有必要的表都已经创建好。需要注意的是,项目要求MySQL版本至少为5.7。 - **项目架构**:了解项目的整体架构,包括前后端分离的设计思想、各模块之间的交互方式等。 - **后端部署**:按照文档指导进行后端服务的部署,包括配置文件的修改、测试接口的访问等。 - **前端部署**:部署前端项目至Nginx服务器,并通过Chrome浏览器进行测试。注意调整开发者工具的位置以避免前端样式被压缩的问题。 ##### 4. 登录功能实现 - **基于Session的登录验证**: - **发送验证码**:当用户提交手机号时,后端会校验手机号的有效性,并发送验证码至用户手机。 - **验证码登录/注册**:用户输入验证码后,后端验证其正确性,如果正确则根据手机号查询或创建用户,并将用户信息保存到Session中。 - **校验登录状态**:通过Cookie中的JSESSIONID来判断用户是否已经登录,并根据Session中的信息放行或拦截请求。 #### 三、项目优化与调整建议 - **技术选型优化**:例如,如果需要实现更复杂的业务逻辑,可以考虑引入消息队列服务(如RabbitMQ),以替代Redis作为消息队列。 - **代码质量提升**:通过重构代码、增加单元测试等方式提高代码的质量和可维护性。 - **性能调优**:针对Redis的使用,可以通过优化数据结构的选择、减少网络通信次数等方式进一步提升性能。 - **安全加固**:增强系统的安全性,例如加强用户输入的校验、使用HTTPS协议等。 #### 四、总结 通过对黑马点评项目的深入分析,我们不仅掌握了Redis在实际项目中的应用方法,还了解了如何通过优化调整提高系统的性能和稳定性。此外,项目还涉及到了用户签到功能的实现、登录验证机制的设计等多个方面,这些都是学习Java开发过程中的重要知识点。希望本文档能够帮助大家更好地理解和应用这些技术。
2024-08-23 16:50:57 10.78MB Redis 项目 Java
1
今日学习配置HC-05蓝牙模块 与 STM32 F103C8T6 单片机的通信: 文章提供测试代码讲解、完整工程下载、测试效果图 主要需要用到的知识: 串口通信 目标是配置单片机串口1 与 HC-05蓝牙模块的通信,并借此传送数据打印数据给手机APP
2024-08-23 15:18:32 5.99MB stm32 网络 网络
1
国产MCU华大半导体HC32L17x系列单片机软硬件设计SDK资料包参考设计原理图应用笔记等资料: HC32L176_L170系列数据手册Rev1.3.pdf HC32L17X_L19X管脚功能查询及配置.xlsx HC32L17_L19_F17_F19系列勘误手册.pdf HC32L17_L19系列用户手册Rev1.4.pdf 1. 数据手册和用户手册 2. 产品变更通知 3. 环境相关 HC32L17_HC32L19_HC32F17_HC32F19系列的MCU开发工具用户手册Rev1.0.pdf MCU封装库及Demo板参考原理图 仿真及编程工具 应用注意事项 应用笔记 最小开发工程模板 集成开发环境支持包 驱动库及样例
2024-08-16 09:55:05 19.59MB 国产单片机
1
MEgATrack: Monochrome Egocentric Articulated Hand-Tracking for Virtual Reality 用于虚拟现实的单色以自我为中心的关节式手动跟踪
2024-08-14 17:09:26 1.03MB 论文笔记
1