【硬创邦】跟hoowa学做智能路由(二):从芯片开始

  上一章我们讲了这次DIY活动的来龙去脉,本章我们将一起了解下路由器的架构,芯片,操作系统相关的知识。我们的目标是让大家都能做智能路由,所以hoowa会尽可能少涉及到嵌入式的知识,因为这孩子本身学习就不好,他自己也害怕那些所谓的各种"定义"会让他联想到上学的时候理科从来都不及格。

嵌入式的架构定义

略。刚说了不讲这些的,就算我给大家讲了我也是从别的书里抄过来的,有意义么,我一定讲我自己的。谢谢鼓掌!!!

MIPS处理器架构

现在的路由器基本架构和性能已经非常接近于我们的电脑了。近十年来,路由器所采用的CPU主要都是基于MIPS架构设计的。说到MIPS可能很多人陌生,说到龙芯了解的人就比较多了,龙芯便是MIPS架构下的一种比较烂的处理器。

MIPS架构是由斯坦福大学的教授约翰·轩尼诗在闲的无聊的时候带领他的团队开发的一款处理器。在随后的3年时间他创立了MIPS科技公司。MIPS采用了RISC精简指令集设计技术,MIPS架构处理器在当时刷新了32位处理器性能的历史。 在2002年中国研发龙芯处理器,采用了MIPS架构但是没有经过MIPS公司授权遭到起诉,2009年与MIPS公司和解。

MIPS架构有过辉煌的历史,它曾经是芯片三国大战(x86、MIPS、PowerPC)的佼佼者,hoowa记得在2000年间国内还可以买到一款叫做Cobalt的服务器(Sun公司为抢占市场收购了这家公司)。

简单地说,MIPS架构当年就是为了电脑而设计的,跟另外两种通用处理器一样,但是后期在这一领域被Intel给无情的打死了。之后转战嵌入式领域,由于MIPS架构的开放性,因此涌出大量芯片公司基于该架构开发路由器芯片。

芯片厂商

我们现在所使用的路由器,其中90%以上都是采用的MIPS架构的芯片,而且基本上都是32位处理器。在同等价位的情况下,32位,高集成,高性能的处理器,只有MIPS在这个定位领域中最强(相比ARM的低性能版本要强很多)。

路由芯片目前普遍采用的是SoC(System on a Chip)设计,路由器厂家喜欢叫做RoC(Router on a Chip)设计。

这些厂家将内存控制、外围IO电路接口、Switch芯片、Wi-Fi芯片、加密芯片、SATA接口、PCIE接口、USB接口等等你能想到没想到的统统都集成到了一块手指甲大小的芯片中,其功耗只有1W到3W之间,性能达到了400MHz到800MHz之间。但目前有少数厂家已经开始基于ARM开发路由器芯片了,比如Broadcom(博通)公司的BCM470X系列芯片,采用的就是ARM架构,小米路由器第一代产品便是基于此芯片设计。

Atheros公司:Atheros是全球路由芯片的顶级公司,其创始人便是MIPS架构的发明者约翰·轩尼诗。Atheros的芯片采用MIPS32位架构设计,并且该公司也是Wi-Fi标准的制定者之一,国内已上市的智能路由产品中目前只有极路由·壹代采用这款方案。Atheros也是目前OpenWRT系统支持最完整、全全面的芯片。在后期的教程中为了让大家更多了解OpenWRT降低入门难度,我们将基于该公司的方案进行讲解。该公司目前唯一的问题是在国内的配套产业链不够完善,并且其一款经典芯片跟TP-Link穿一条裤子限制卖给其它厂商。Atheros在2011年被高通收购,目前旗下产品线正逐步切换到高通品牌下。

Broadcom公司: Broadcom是全球主要无线路由芯片的出货商之一,其产品以稳定可靠著称。小米第一代路由器便是采用其BCM470X系列处理器,该处理器是ARM架构,不过Boradcom其他的路由芯片大部分都是MIPS架构。该公司的路由器芯片目前在国内有两个问题,一是对合作厂商要求极高,小公司不搭理。二是,其芯片发热量很大。

Ralink公司:雷凌科技来自中国台湾地区,也是一家常年耕耘在路由器领域的芯片厂商,而且是目前国内出货量最大的路由器厂商,该厂商不论是产业链,还是相关开发资料,在国内都是最成熟的,其芯片价格也是最便宜的。因此目前国内上市的智能路由产品大部分都采用该公司方案。这家厂商的问题,主要是不重视OpenWRT项目,并且其重要的驱动代码并不开源。Ralink在2011年被联发科收购,目前产品线已经完全切换到MTK品牌。

常见的路由器硬件规格

硬件规格
处理器 MIPS32位架构(无FPU), ARM架构(非常少见)
主频 320Mhz 到 800Mhz
内存类型 SDRAM,DDR1,DDR2
内存容量 16MB-256MB, 常见的是32MB / 64MB / 128MB
存储器类型 Nor Flash / SPI Flash / Nand Flash
存储器容量 4MB-128MB, 常见的是SPI 8MB / SPI 16MB
交换机 一般芯片内置或外挂
WIFI 一般芯片内置完整的WIFI或部分外挂
支持操作系统 Linux, VxWorks

部分名词解释

Nor Flash:最早的用于嵌入式的存储技术, 读取速度接近于内存,写速度稍慢。
Nand Flash:目前使用最多的存储器技术, 在手机,U盘,SSD硬盘上都采用该技术, 容量较大, 路由器领域使用较少。
SPI Flash:串行总线Flash,目前路由器领域使用最广泛的存储器,读速度比Nor Flash慢,写速度比Nor Flash快很多。

传统路由器怎么做的

目前传统路由器厂商,都是基于以上公司芯片设计的。这些芯片公司们会提供各种资料,包括电路板设计原理图、开发SDK等,这些东西完善到大家难以想像的地步,只要有一台电脑、一款开发板编译安装好系统,一台样品路由器就出来了,连WEB界面都是完善的,所以以前传统厂商拼杀的基本只剩价格和外观。 而一些不法的小厂商,为了让大家觉得无线路由器信号强,使用了违规的大功率信号放大装置,我们现在国内的无线Wi-Fi污染其实已经很严重了。如果这件事情发生在美国,美国政府会把厂商告破产。但是在国内,找不到人管。

由于国内的传统路由器厂商,过于注意外观(比如路由器必须有天线,因为客户觉得有天线信号强,真他妈神奇只有中国才有这种说法),不注重软件(芯片厂家连WEB都做了,没自己啥事),所以普遍传统路由器厂商在智能路由的领域中,都处于被动,存在被边缘化的风险。这其中的大厂像TP-Link、磊科这类公司已经意识到自己的风险,正在努力的开发智能路由产品。 不过我还是要黑下, 对于这些公司来说, 早晚是要左手打右手,他们到底敢革自己命到啥程度,难说!

智能路由器怎么做的

目前大部分智能路由采用了OpenWRT这个开源路由器操作系统作为自己的系统,然后对系统进行修修改改,做个自主知识产权的产品,然后还申请了源代码著作权登记,真不知道这群玩意咋想的,感觉如果比脸皮后,中国人应该是银河系中最强的。

OpenWrt被称作为一个嵌入式的Linux发行版。当年Linksys开源了一款路由器的源代码,然后就有不同的人对这个源代码进行打补丁,然后每一个源代码都是针对一个不同的市场,最后东西就做的乱七八糟了。OpenWRT选择了另外一条路,他从头开始,一点点把各种软件加到系统中,而开放式的架构,令OpenWRT支持数量繁多的芯片,从X86、ARM到各种不知名的奇怪芯片。而开发者使用OpenWRT编译出来的固件,烧写到自己的电路板上之后,就相当于拥有了一台服务器。OpenWRT还支持一种称作为OPKG的增强型安装技术,它使用起来像CentOS下的YUM一样,只需要一个命令,就可以把需要的软件安装在路由器中。

从2005年2月截止今日,OpenWRT已经支持了一千多种软件,并且自己移植软件到OpenWRT中非常容易简单。并且该系统高度模块化,有人说我的产品是深度定制的OpenWRT,其实,只要跟着hoowa把我们的课时学完,只要你懂Linux,人人都可以深度定制OpenWRT真的,是毫无技术可言的。

我们选择基于Atheros芯片的方案来配合OpenWRT也是因为该芯片方案被OpenWRT官方支持的最好,非常适合教学。而国内现在使用最多的Ralink芯片,虽然价格便宜,但是由于OpenWRT官方,和该公司都不太支持,因此并不适合本教学的教程。大家总不会让我去违反Ralink的保密协议,公开他们的那些自以为非常重要的驱动吧。

连载教程的以后章节,将主要围绕OpenWRT这个系统讲解智能路由的开发,从简单的开发移动应用和WEB应用到涵盖到移植软件等各方面内容。

最后,大家现在可以开始提问,在雷锋网(公众号:雷锋网)文章评论、公众号「宅客」:letshome、QQ群:196302618、邮箱:DIYRouter#163.com都可以提交,问题我将会在下章的时候统一解答。需要提醒下,我并不是高手,我回答问题有三个原则:1、我会的我直接回答 2、我不太会的我看着回答 3、我不会的我瞎忽悠 所以我给的答案是否正确需要大家自行判断。

  

  

 

  本文作者:孙冰

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-10-14 18:57:14

【硬创邦】跟hoowa学做智能路由(二):从芯片开始的相关文章

【硬创邦】跟hoowa学做智能路由(三):选择合适的设备

  选板子最纠结.随便上淘宝搜索,有一堆乱七八糟的板子,但是这些板子确大部分都不支持官方OpenWRT,很多都是一些行内人Patch出来之后的成果,所以搭建起来很麻烦. 认识基本的电路 我们先说说,认识基本的电路,不论路由器有多大变化,他一定遵循一个原则"CPU里带的不外挂芯片,CPU里不带的外挂芯片".对于软件开发者,我们不需要对整个电路十分熟悉或了解.我们只需要了解大概意思即可. CPU 一般路由器的电路板,CPU都设计在中间位置,旁边有一颗晶振.目前主流的路由器CPU基本采用BG

【硬创邦】跟hoowa学做智能路由(十一):实现网络存储与文件共享

     本章将介绍使用Samba实现Windows网上邻居以及使用FTP两种方式进行文件共享,这样你就可以把经常使用和需要交换的文件存放于你的智能路由存储器里了. 文件共享和传输的协议有很多种,但是hoowa为了让大家使用最常用的,hoowa选择了介绍Windows文件共享服务器和FTP文件传输服务器的实现方法.Windows文件共享服务器更适合局域网内部进行文件共享管理,简单方便容易.FTP文件服务器适合局域网及公网远程文件共享服务. 选择存储器 还记得我们之前讲解过如何加载外部存储器吗?

【硬创邦】跟hoowa学做智能路由(六):系统基础配置

     在这一章当中,我们将介绍在OpenWRT系统下的编辑和配置的基础指令和操作知识,因为后续的章节主要用于介绍如何配置路由的相关功能,在配置的操作时我们需要掌握编辑和处理的方法. 本章中,编辑和配置的基础方法我们分为三种,三种方式都可以操作成功.分别为: 使用VI编辑器: 适合教学时直接修改配置文件. 使用UCI进行编辑: 适合教学时使用,更适合用于自己开发的第三方程序修改配置文件. 使用SCP下载到本地编辑: 适合教学和系统的测试,文件通过SCP工具下载到本地修改,完成后再上传到服务器上

【硬创邦】跟hoowa学做智能路由(七):路由联网

  这一章hoowa将向各位介绍OpenWRT下基本路由功能的配置方法,通过本章学习大家将了解如何设置OpenWRT来使路由连接网络,讲解将通过命令行模式. 在系列教程中,hoowa不会教大家使用LUCI系统,LUCI是一个OpenWRT下的后台管理界面,界面较繁冗.本教程是面向广大Linux工程师和开发人员的教程,我们所针对的人员主要是有能力自己开发出比LUCI更强大的产品,后续的Area 4里我将教大家怎么搭建自己的WEB开发平台,用x86上常用的语言可以完全开发一个比LUCI更好用的界面.

【硬创邦】跟hoowa学做智能路由(十):扩充RAM和FLASH

  前几篇好多人都说路由器的内存太小了,FLASH太小了怎么办.那我们这章就介绍下怎么给路由器扩充内存和存储器. 站在玩家兴趣身份上来说,这章的内容会让以后更精彩,操作技术上也存在一些难度,请大家认真操作一次. 实现原理 在M150开发板上我们拥有3个USB接口以及1个TF卡接口,这些接口足够我们连接各种外部存储设备. 使用Linux的SWAP技术(交换内存分区技术,类似Windows虚拟内存)还可以让外部存储设备承担一部分内存工作,慢是慢了点,但是聊胜于无啊. 至于扩展Flash的容量,我们有

【硬创邦】跟hoowa学做智能路由(十三):网络音箱之Android篇

        我们继续网络音箱的专题,这章将介绍安卓系统下的MP标准软件控制路由器播放音乐. 什么是MP MP全称为音乐播放进程(Music Player Daemon).它是一个可定制化功能强大的服务端播放音乐软件,通过其自身的插件和库系统即可完成通过网络控制播放音乐.MP具备一个自己的控制管理协议,这些协议是基于TCP协议进行传输的.客户端连接到服务器上控制服务端进行处理.MPD表示服务端,MPC表示客户端. MP是一个完全开放源代码的整体系统,因此有很多操作系统下的客户端,在安卓手机中即

【硬创邦】跟hoowa学做智能路由(八):防火墙/DMZ/UPNP

     在上一章,我们已经介绍了关于网络部分的配置,今天这章我们将深入介OpenWRT下的防火墙类功能. 在OpenWRT下防火墙的默认行为已经可以满足路由器的需要,一般情况下也无需修改,所以本章作为了解阅读即可. 如果想设置端口转发.uPNP等更多功能可以参考本章的配置方法进行设置. OpenWRT内置防火墙介绍 OpenWRT下的NAT.DMZ.Firewall rules都是由配置文件"/etc/config/firewall"进行控制管理的.此文件可以使用UCI进行控制,也可

【硬创邦】跟hoowa学做智能路由(十二):网络音箱之声卡驱动

  题记:忽闻水上琵琶声,主人忘归客不发.转轴拨弦三两声,未成曲调先有情. 对于大多数年轻的女性来说,她们最关心的是生活和自己的男人.男人应该更多的关系自己身边的女人,人生是苦比乐多的,因此要乐观的面对自己好好的对家人.尤其是IT男们,不要因为只顾自娱自乐的这种自私而忽略了身边人.为什么不为你的女朋友准备一台网络音箱?在她繁忙工作下班回来,可以一边开心的听音乐一边给你烧菜呢? 从这章开始我们将花费一些时间介绍下使用路由器实现网络音箱的功能,这些功能都有一个特点"只需要软件包修改和配置"

跟我学做在线调查(二)

在线 续上篇 上一篇中我们已经分析了在线调查的功能,数据库结构以及所要用到的一些函数.这一篇的主要任务就是文件的设计.设计出要有多少个文件来构成这个在线调查,每个文件又分担什么任务.并写出这些文件的主要流程,以方便后面的代码编写. 一.文件设计 按照传统的思路,我们总是把在线调查设计成三个部份,一是显示调查表:二是显示调查统计结果:三是后台管理.而在实际应用中,我们会发现,显示调查表往往是在某个网页中的,显示结果一般也是弹出一个窗口来.后台管理则是通过另一个链接或者登录表单转向到的.为了更方便地