博文

目前显示的是标签为“协议”的博文

802.11协议用到的简写

ACK (acknowledgment) 应答 AID (association identifier) 关联识别码   AP (accss point) 访问点 ATIM (announceent traffic indication message) 广播传输指示消息    BSA (basic service area) 基本服务区 BSS (basic service set) 基本服务集 BSSID (basic service set identification) 基本服务集识别码 CCA (clera channel assessment) 干净信道评价 CCK (complemenetary code keying) 补码键控 CF (contention free) 无竞争 CFP (contention-free period) 无竞争期 CID (connection identifier) 连接标识符 CP (contention period) 竞争期 CRC (cyclic redundancy code) 循环冗余码 CS (carrier serse) 载波侦听 CTS (clear to send) 允许发送 CW (contention window) 竞争窗口 DA (destination address) 目的地址 DBPSK (differential binary phase shift keying) 差分二进制相移键控 DCE (data communication equipment) 数据通信设备 DCF (distributed coordination function) 分布式协调功能 DCLA (direct current level adjustment) 直接电平调整 DIFS (distributed (coordination function)interframe space) 分布式(协调功能)帧间间隔 DLL (data link layer) 数据链路层 DP (desensitization) 减敏现象 DQPSK (differential quadrature phase shift keying) 差分正交相移键控 DS (ditribution system) 分发系统 DS...

802.11n 节能分析

图片
无线网络接口在结点总功耗中占有相当大的比例。通常情况下,无线网络接口加电工作时按功率消耗由小到大的顺序有4种模式:睡眠模式(sleep)、空闲模式(idle)、接收模式(receive)以及发送模式(transmit)。当无线网络接口工作于睡眠模式时称结点处于睡眠状态,而当无线网络接口工作在其他三种模式时称结点处于活跃状态。 试验表明:网络接口处于睡眠状态时能耗特别低,处于空闲模式时的功率消耗与处于接收、发送模式时的功率消耗相差无几[1]。这说明在发送代价很大的网络中为了节能而常用的功率控制机制并不能显著降低网络能耗;尽可能将结点网络接口置于睡眠状态是降低结点功耗的关键,各种节能协议的设计也主要是围绕这个思想进行的。这种类型的节能协议主要由数据链路层的MAC子层实现。 1 802.11协议的基本节能机制 802.11协议[2]在MAC子层标准中定义了两种模式:分布协调功能DCF和点协调功能PCF。由于DCF的使用比较普遍,因此本文主要基于DCF来探讨802.11协议的节能技术。 在节能模式下,当结点没有数据传输时可以进入睡眠状态,但这种操作不能影响正常的数据通信。因此必须要解决好两个问题:节能模式下结点如何从其他结点接收数据;结点如何向处于节能模式的结点发送数据。 802.11标准中为802.11DCF定义了节能模式PSM[3](Power Save Mode)。PSM工作于全互连网络中,工作过程如图1所示。各结点将时间轴分为连续的beacon周期,当每一beacon周期开始时,工作于节能模式的结点都唤醒一段时间,称之为ATIM窗口(Ad Hoc Traffic Indication Message)。在ATIM窗口开始的时刻各结点都处于活跃状态并竞争发一beacon帧来进行全网同步,其中beacon帧中携带本结点的时钟信息。各结点都与成功接收到的beacon帧进行同步,并且不再发送自己的beacon帧。同步后,有报文要发送的结点通过发送ATIM帧与接收结点进行信息交互,接收结点收到发给自己的ATIM帧后,应答一个ATIM-ACK(如果ATIM帧的地址是一广播地址,则无需应答)。结点如果有报文要发送或接收,则在剩余的beacon周期时间内(本文称作流量窗口,简称TW窗口)一直处于活跃状态,那些没有...

i2c 协议

一 .  技术性能 :      工作速率有 100K 和 400K 两种;      支持多机通讯;      支持多主控模块,但同一时刻只允许有一个主控;             由数据线 SDA 和时钟 SCL 构成的串行总线;      每个电路和模块都有唯一的地址;                           每个器件可以使用独立电源 二 .  基本工作原理 :      以启动信号 START 来掌管总线,以停止信号 STOP 来释放总线;      每次通讯以 START 开始,以 STOP 结束;      启动信号 START 后紧接着发送一个地址字节,其中 7 位为被控器件的地址码,一位为读 / 写控制位 R/W,R. /W 位为 0 表示由主控向被控器件写数据, R/W 为 1 表示由主控向被控器件读数据;      当被控器件检测到收到的地址与自己的地址相同时,在第 9 个时钟期间反馈应答信号;      每个数据字节在传送时都是高位 (MSB) 在前; 写通讯过程 :     1.  主控在检测到总线空闲的状况下,首先发送一个 START 信号掌管总线;     2.  发送一个地址字节 ( 包括 7 位地址码和一位 R/W) ;     3.  当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号...

802.11n 协议浅析

图片
物理层的改进: 1、MIMO,传说中的空分复用,频点相同。AP和client成对出现 利用多天线传输,将串行映射为并行 各天线独立处理,自主运行 各天线用各自的调制方式发送电波 各天线用各自的解调方式接收电波 MIMO变态版: 1)、diversity(分集) 天线数量多于空间流数量,使用两根天线的输出组合来接收一个空间流,获得更远的传输距离。 2)、Beam-forming(聚束) 通过调整发送信号的相位来实现,提高了接收端的灵敏度。 2、OFDM(正交频分复用) 传说中的在频域串转并的方法,不同的频点,一个频点叫一个信道。 3、带宽 Channelbonding(40MHz) 4、基频 中国规定2.4GHz 频段范围是2.4~2.4835GHz, 1-13信道(1信道为2.412GHz,每两个相邻信道间隔为5MHz);5GHz频段范围是5.725~5.825GHz, 149/153/157/161/165信道(149信道为5.745GHz) 5、速率和吞吐量 DateRate DataRate指物理层传输速率,是传输信号的速度,不管这是数据帧还是其他的控制帧。11N提供最高达600M的物理层传输速率 吞吐量 吞吐量指的是真正的数据载荷部分传输的速率。一般测试结果大致为总传输速率的一半左右它是不计算诸如:TCP负载,MAC头负载,和PHY负载,以及控制帧管理帧,和空闲时间,冲突造成的负载等 速率的计算方法: 举例如MCS5,20MHz,精简帧间间隔,1空间流时:DataRate=52*(2/3)*6bit*1*(10/9)/4us=57.8Mbit/s MAC层改进: 1、TXOP(对称的传输机会) 当站点需要传输MSDU时,并不会在获得接入机会的同时接入信道,而是等待一段时间后再进行发送。一个节点从其获取接入信道的机会到其开始传输的时间叫做一个TXOP。通过轮询或者竞争的机制可以调整不同站点TXOP的大小,使得信道可以得到更好的应用。 2、BlockACK(块确认) 1)通过ADDBA Re...

spi flash 调试总结

抓狂的spi终于弄完了,想死的心都有了,本来不想到这么麻烦,大意了。 一、都不知道从何说起了,先说说我们的spi的“变态点”吧。 变态点一: 四种模式(CONTROL0 寄存器TMOD域),一个简单的spi协议还得搞出四种模式,好智能啊。 变态点二: CS信号和SCLK信号不能单独受控,只能由写操作来控制,好智能啊。 变态点三: 我把你前两点的脾气摸到了之后,我该能控制你了吧,不行,你还非得在给我弄出一个EEPROM Read的模式,这个模式更智能,在写完命令和地址之后,CS信号和SCLK信号自己产生,不用再用写操作来控制了,好智能啊。 真得谢谢设计这东西的人,你太为我们软件着想了,把我们的事都给干了,你想让我们下岗啊。 二、奥,想起怎么写了,得总结一下我的各种需要怎么来仿真 1、 读flash芯片的状态寄存器,代码如下 UINT8 byte = 0; // 读之前,必须得设置一下模式 NST_SPI->SSIENR= 0x00; NST_SPI->CTRLR0= (SPI_TMOD_TR << SPI_TMOD_OFFSET) | (SPI_FRF_SPI << SPI_FRF_OFFSET) |(SPI_FRM_SIZE - 1) |( SPI_MODE_3 << 6); NST_SPI->SSIENR= 0x01; NST_SPI->DR = FLASH_CMD_SRR; // 发送一个伪码为的是产生时钟和CS有效 NST_SPI->DR = DUMMY_BYTE; BSP_SpiWait(); //到这里,我们一个模拟过程算是完成了。 byte = NST_SPI->DR; //在这种模式下,只要sck有,cs为低,sdi就会被采样,我们在FIFO中就能读到(必须在调用BSP_SpiWait函数之后,再读),因此我们必须得把命令占的一个时钟从sdi移位到FIFO中的数据丢掉。 byte = NST_SPI->DR; // 这才是真正想要的数据 return byte; 备注: 1)、BSP_SpiWait函数如下,该函数用于一次读写逻辑过程的完成。 VOID BSP_SpiWait...

xmodem 协议

1 . Xmodem 协议是什么?    XMODEM 协议是一种串口通信中   广泛用到的异步文件传输协议。分为标准 Xmodem 和 1k-Xmodem 两种,前者以 128 字节块的形式传输数据,后者字节块为 1k 即 1024 字节,并且   每个块都使用一个校验和过程来进行错误检测。在校验过程中如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个确认字节  (ACK) 。由于 Xmodem 需要对每个块都进行认可,这将导致性能有所下降,特别是延时比较长的场合,这种协议显得效率更低。      除了 Xmodem ,还有 Ymodem , Zmodem 协议。他们的协议内容和 Xmodem 类似,不同的是 Ymodem 允许批处理文件传输,效率更高; Zmodem 则是改进的了 Xmodem ,它只需要对损坏的块进行重发,其它正确的块不需要发送确认字节。减少了通信量。 2 . Xmodem 协议相关控制字符     SOH             0x01     STX           0x02     EOT             0x04     ACK             0x06     NAK             0x15     CAN             0x18     CTRLZ         0x1A 3 .标准 Xmodem 协议(每个数据包含有 128 字节数据)帧格式   __...