当前位置: 首页 > news >正文

走的人多了,也便成了路(七)

好多年前就听到这样的说法:一流的企业做标准,二流的企业做品牌,三流的企业做产品。

在通信行业待久了,经历了移动通信技术标准的发展历程,体会到很多事情没有那么神秘,甚至由于一些偶然因素的出现,才让产业走到了今天的样子。

第二代移动通信系统(一)

同人不同命

前面介绍了第一代移动电话系统。蜂窝技术发源于美国的贝尔实验室,但全球第一个商用的是日本,而规模化发展则是在北欧,直到1983年FCC完成频谱分配,AMPS算是在美国正式开始商业运营。

伴随着第一代移动电话系统在全球的普及,设备商越来越清晰地意识到,需要建立统一的移动电话技术标准,如果能在标准制定时抢占先机,就能在全球范围的移动电话系统建设中争取到主动。

于是,欧洲和美国争夺移动通信技术标准话语权的战争打响了。

【欧洲抢占先机】

早在1982年,欧洲邮电联合会(欧洲电信标准协会的前身)成立了GSM(Groupe Speciale Mobile,移动特别行动小组),开始研究泛欧数字移动通信系统。

后来,GSM这个缩写改了名字,特别高大上:全球移动通信系统(Global System for Mobile Communications)。GSM最开始的工作组的名字渐渐淡出了人们的记忆。

在欧洲的电信专家们的设计里,第二代移动通信的重要标志有两个:

其一是无线技术从FDMA(频分多址)升级为TDMA(时分多址),不仅大幅提升了系统的容量规模,更在抗干扰性和越区切换等方面有优异的表现。

其二是核心网的诞生,以及HLR与MSC分离、SIM卡的发明等一系列创新,使自动漫游成为移动通信的基础功能。

回到上世纪80年代,不难理解为什么欧洲将漫游作为GSM的重点和亮点:彼时欧洲一体化的呼声甚高,而且欧洲各国国土面积比较小,跨国漫游成了刚需。

由于第一代移动电话网络(NMT)是基于北欧通信管理局制定的标准,一开始就覆盖了北欧四国,能跨国使用,基础打得牢,进展也就快。

1987年,GSM提交了最初的技术标准。同年,在哥本哈根签署了联合研发和部署GSM标准的谅解备忘录,并且规定GSM作为欧盟内部的强制标准。

基于这一统一标准,欧洲的主要设备商集中兵力搞研发;与此同时欧洲各国运营商也纷纷表示,将部署GSM网络。有了供需双方共同推动,GSM的发展一路绿灯,畅行无阻。

1991年,时任芬兰首相象征性地打通了第一个GSM商用电话,拉开了GSM全球部署的序幕。

【美国尾大不掉】

在美国,第二代移动通信的发展呈现出另一番景象。

美国是蜂窝移动通信技术的发源地,又是全球经济最发达的地区,尤其是汽车的普及率超高。之前说过,最初移动电话的定位是固定电话的延伸和补充,因此在这个“汽车轮子上的国家”,模拟移动电话网络的建设速度和规模都是全球最领先的;而车载电话是最主要的终端。

正因为有了相当规模的存量AMPS网络和用户,因此对于第二代移动通信的设计思想,美国和欧洲不太一样。

其一要确保与目前的AMPS制式兼容,无论是运营商的网络设备还是用户侧的终端,都要同时支持APMS以及新出现的数字通信系统。

其二才是TDMA对FDMA的替代。除了与GSM类似的增加容量、降低成本、提升抗干扰之外,美国在安全性方面提出很多要求,试图化解日益突出的手机克隆空中窃听等问题。

1990年,在击败了摩托罗拉主推的NAMPS之后,DAMPS成为美国的第二代移动电话的统一标准。

这套标准设计是双模式、双频段,用户使用双模(模拟/数字)移动电话,在800MHz或1900MHz频段上,既可从模拟信道接入移动通信业务,又可从数字信道接入。

虽然标准推出晚了些,但在商用进程上,DAMPS还是挺快的,1992年就在AT&T正式商用。

【CDMA横空出世】

1942年8月,美国电影明星海蒂·拉玛申请的“保密通信系统”专利得到了批准,专利号为2292387。之后,她将这项专利捐献给美国政府。

fe88490871e2115a8d6589c20ab27fab.jpeg

这项专利描述了一种类似自动钢琴音乐筒、由88个可能的阶梯组成的序列控制装置,通过在每个频率上仅发送整个信息的一小部分,来实现对鱼雷的远程操纵。

听着是不是特别神奇?网上介绍这位传奇女星兼职发明家的内容很多,感兴趣的小伙伴可以去搜一下。

这项专利中提出的“频率跳变”思路,后来逐渐演化成CDMA技术,最终成为移动通信发展史中的革命性因素。

1985年,高通公司在圣迭戈成立,他的第一份合同来自美国军方,承接了此前由军方负责的CDMA安全无线通信技术研究。

1988年,几位高通创始人意识到,CDMA可能在民用地面移动通信上大有作为。

次年,高通去FCC(美国联邦通信委员会)拜码头,得到了这样的答复:

“只要CDMA技术不和AMPS冲突,如果有运营商希望使用CDMA技术,而且入网设备经过了FCC认证,FCC就不会设置障碍。”

听起来这个说法挺正向的,但背后的意思就是:高通得依靠自己的力量完成研发,还得自己去找一个愿意吃CDMA这个螃蟹的运营商。

高通的运气不错:

1990年2月,NYNEX移动公司和高通在纽约成功演示了CDMA 。

1990年8月,高通公司与美国AT&T、NYNEX和Ameritech签署数百万美元的CDMA合同。1993年3月,美国电信行业协会(TIA)公布CDMA为北美数字蜂窝标准(IS-95A标准)。

1994年,美国Sprint宣布采用CDMA技术。1996年,韩国推出CDMA商用网络。

紧追慢赶地,CDMA终于追上了第二代移动电话系统的发展潮流。

【结语】

回看向第二代移动通信迈进的历程,技术标准化领域出现的状况挺有意思:

一方面,同样是有第一代移动电话的基础:

欧洲利用第一代移动电话的基础和实践,有力推动了GSM迅速成熟;

美国成功推动第一代移动电话规模化发展,但巨大的存量市场却拖住了美国迈向第二代移动电话的步伐。

另一方面:

欧盟早早将GSM确定为欧洲的统一标准,运营商和设备商都严格执行,是我们熟悉的“集中优势兵力打歼灭战”。走这条路的人多了,标准成熟得快,规模和影响力也就越大

而美国推崇市场化调节,FCC的态度是鼓励竞争,放松电信管制,从负面看,群雄并起的乱象分散了资源和发展规模;但从积极的角度看,也给高通+CDMA创造了生存条件。

欧洲和美国的模式各有利弊。至于孰优孰劣,一直众说纷纭。

而在现实中,第二代移动通信标准的争夺战就像两支部队以不同的方式向山顶进军,先到山顶的GSM虽然只是在时间上领先了一点点,但就是这一点点优势,对后来的战局产生了决定性的影响。

相关文章:

走的人多了,也便成了路(七)

好多年前就听到这样的说法:一流的企业做标准,二流的企业做品牌,三流的企业做产品。 在通信行业待久了,经历了移动通信技术标准的发展历程,体会到很多事情没有那么神秘,甚至由于一些偶然因素的出现&#xff…...

UE5中在地形中加入湖、河

系统水资产添加 前提步骤123 完成 前提 使用版本 UE5.0.3,使用插件为UE内置的Water和water Extras. 步骤 1 记得重启 2 增加地形&#xff0c;把<启用编辑图层>勾选 如果地形没有勾选上编辑图层&#xff0c;那么就会导致湖、河等水景象无法融入地形。 如果忘记勾选…...

【280个shell脚本】----提示运维工作效率

1.MySQL 数据库备份单循环 #!/bin/bash DATE$(date %F_%H-%M-%S) HOSTlocalhost USERbackup PASS123.com BACKUP_DIR/data/db_backup DB_LIST$(mysql -h$HOST -u$USER -p$PASS -s -e "show databases;" 2>/dev/null |egrep -v "Database|information_schema…...

从零开始搭建Electron项目之运行例程

最好的学习方式就是&#xff1a;给一段能够运行的代码示例。 本文给出了例程资源&#xff0c;以及运行的步骤。 在国内开发electron有一点特别不好&#xff0c;就是如果不爬梯子&#xff0c;下载依赖容易出错。 一、例程资源 到如下路径下载例程到本地。 GitCode - 全球开发者…...

MySQL逻辑备份

目录 一.mysqldump 基本命令&#xff1a; 参数选项&#xff1a; 示例 备份整个数据库 备份多个数据库 备份所有数据库 仅备份数据库结构 仅备份特定表 添加选项以有效处理锁表问题 恢复数据 恢复数据库 恢复库中的表 使用source恢复 注意事项 二. mysqlpu…...

python 获取网页链接图片

python 获取 网页图片 在Python中&#xff0c;可以使用requests库获取网页内容&#xff0c;再使用BeautifulSoup解析网页&#xff0c;提取图片链接&#xff0c;最后保存图片到本地。以下是一个简单的例子&#xff1a; import requests from bs4 import BeautifulSoup import o…...

Leetcode 力扣114. 二叉树展开为链表 (抖音号:708231408)

给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。 示例 1&#xf…...

文刻ai工具跟绘唐AI工具有什么区别

文刻AI工具和绘唐AI工具是两种不同的人工智能工具。点击查看 文刻AI工具是一种自然语言处理工具&#xff0c;可以用于生成、修改和校对文本。它可以帮助用户更高效地写作&#xff0c;提供词汇和语法建议&#xff0c;检查拼写和语法错误&#xff0c;并提供自动补全和自动纠正功…...

手写kNN算法的实现-用欧几里德空间来度量距离

kNN的算法思路&#xff1a;找K个离预测点最近的点&#xff0c;然后让它们进行投票决定预测点的类型。 step 1: kNN存储样本点的特征数据和标签数据step 2: 计算预测点到所有样本点的距离&#xff0c;关于这个距离&#xff0c;我们用欧几里德距离来度量&#xff08;其实还有很多…...

IGraph使用实例——线性代数计算(blas)

1 概述 在图论中&#xff0c;BLAS&#xff08;Basic Linear Algebra Subprograms&#xff09;并不直接应用于图论的计算&#xff0c;而是作为一套线性代数计算中通用的基本运算操作函数集合&#xff0c;用于进行向量和矩阵的基本运算。然而&#xff0c;这些基本运算在图论的相…...

【MySQL】(基础篇五) —— 排序检索数据

排序检索数据 本章将讲授如何使用SELECT语句的ORDER BY子句&#xff0c;根据需要排序检索出的数据。 排序数据 还是使用上一节中的例子,查询employees表中的last_name字段 SELECT last_name FROM employees;输出结果&#xff1a; 发现其输出并没有特定的顺序。其实&#xf…...

C++ C_style string overview and basic Input funcitons

write in advance 最近在做题&#xff0c;遇到一个简单的将console的输入输出到文件中的简单题目&#xff0c;没有写出来。悔恨当初没有踏实地总结string 相关的 I/O 以及与文件的操作。这篇文章旨在记录基础的字符I/O, 简单常用的文件I/O操作函数。 当然&#xff0c;你会说C…...

VS2022+Qt雕刻机单片机马达串口上位机控制系统

程序示例精选 VS2022Qt雕刻机单片机马达串口上位机控制系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《VS2022Qt雕刻机单片机马达串口上位机控制系统》编写代码&#xff0c;代码整洁&a…...

Android Ble低功耗蓝牙开发

一、新建项目 在Android Studio中新建一个项目&#xff0c;如下图所示&#xff1a; 选择No Activity&#xff0c;然后点击Next 点击Finish&#xff0c;完成项目创建。 1、配置build.gradle 在android{}闭包中添加viewBinding&#xff0c;用于获取控件 buildFeatures {viewB…...

Visual Studio的快捷按键

Visual Studio的快捷按键对于提高编程效率至关重要。以下是一些常用的Visual Studio快捷按键&#xff0c;并按照功能进行分类和归纳&#xff1a; 1. 文件操作 Ctrl O&#xff1a;打开文件Ctrl S&#xff1a;保存文件Ctrl Shift S&#xff1a;全部保存Ctrl N&#xff1a;…...

【WEB系列】过滤器Filter

Filter&#xff0c;过滤器&#xff0c;属于Servlet规范&#xff0c;并不是Spring独有的。其作用从命名上也可以看出一二&#xff0c;拦截一个请求&#xff0c;做一些业务逻辑操作&#xff0c;然后可以决定请求是否可以继续往下分发&#xff0c;落到其他的Filter或者对应的Servl…...

[书生·浦语大模型实战营]——LMDeploy 量化部署 LLM 实践

1.基础作业 1.1配置 LMDeploy 运行环境 创建开发机 创建新的开发机&#xff0c;选择镜像Cuda12.2-conda&#xff1b;选择10% A100*1GPU&#xff1b;点击“立即创建”。注意请不要选择Cuda11.7-conda的镜像&#xff0c;新版本的lmdeploy会出现兼容性问题。其他和之前一样&…...

TiDB-从0到1-配置篇

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇 一、系统配置 TiDB的配置分为系统配置和集群配置两种。 其中系统配置对应TiDB Server&#xff08;不包含TiKV和PD的参数&#xff0…...

微信小程序按钮设计与交互:打造极致用户体验

微信小程序作为一种流行的应用形式&#xff0c;其界面设计和交互体验对于用户吸引力和留存率至关重要。其中&#xff0c;按钮作为用户与小程序进行交互的主要方式之一&#xff0c;其设计和实现直接影响到用户体验的质量。在本文中&#xff0c;我们将探讨微信小程序按钮的设计与…...

ES6中如何使用class和extends关键字实现继承?

在ES6中&#xff0c;可以使用class关键字来定义类&#xff0c;使用extends关键字来实现继承。下面是一个示例&#xff1a; // 父类 class Parent {constructor(name) {this.name name;}sayHello() {console.log(Hello, my name is ${this.name});} }// 子类 class Child ex…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...