这一期来了解一下Ralink的RT3052芯片,也许在做产品开发的人会不屑于这么陈旧的芯片,但是当你了解了MT7688或者MT7621之后就会发现,这些芯片的核心思想和开发方式都是不变的,差别就是各项参数的提高,细微的功能增加和删减。Ralink在被MTK收购前风格也和MTK很相近,都是基于Turnkey的原则设计芯片。SOC,Demoboard,SDK,各种一站式服务。所以可以看到,那些半路出道作路由器的厂家,比如360,小米,联想,都是清一色的MTK方案,Atheros,Broadcom,Realtek根本不考虑,原因就是MTK的芯片开发周期短。

基于芯片级别的了解知识时,各种论坛博客和搜索就捉襟见肘了,最好的方法就是拿着芯片的Datasheet细细的读,在SDK的DataSheet目录下 RT3050_5x_V2_Bookmarked.pdf 就是RT3052的Datasheet,我在官方的版本上修改了目录结构,方便大家阅读。

上图贴出了RT3052的Functional Block Diagram ,在理解这张图之前先来了解一些概念,其实路由器的架构都是相同的:RF(Radio Frequecy)、BBP(Base Band Processor)、AP(Application Processor)三部分,再加上外设(Peripheral),就这四个部分就可以把路由器说清楚。
        RF射频部分的功能主要是射频接收和发射,这部分性能好坏的区别主要是:路由器信号的好坏、会不会掉线、辐射这些。一个好的射频模块是可以根据信号的强弱调制辐射水平的,信号好的时候就降低发射功率来降低辐射,信号差的时候就提高发射功率来保证通信质量。国产路由器喜欢大天线,一个路由器恨不得8根天线,其实80%的比重在于RF芯片和电路设计的好坏。
        BBP基带模块就重要了,大家通常说的OFDM,CCK,DSSS,MIMO-OFDM这些的主要区别就在这里,大家常说调制解调方式都是指的BB模块。因为基带就是对RF射频模块接收到了信号进行处理,所以基带就和通信协议关系最大。通信协议里面就包括了调制方式、编码方式和其他协议。对于路由芯片厂商来说,从802.11g升级到802.11n,只需要更换BB基带模块就可以了。应该说BBP模块还是很重要的,直接关系到信号接收和发送的效率。
        AP应用程序处理器模块其实就是CPU模块,最老的路由器是比较忽视AP模块的,因为最老的路由器除了用来上网几乎没有什么其他功能。而现在刚好相反了,现在的路由器已经逐渐成为一台小型的家用服务器。AP模块的性能完全可以用描述CPU的方法来描述,路由器由于功耗的原因一般采用的都是MIPS内核的处理器(ARM也开始占领这方面市场了)。衡量AP模块的主要指标包括:架构、指令集、主频、CPU和内存交换信息的总线带宽等。现在高端路由器的普通路由器的主要区别在这个模块,毕竟1GHz的cpu和400MHz的cpu在性能上还是有很大区别的。其实这个模块最好理解,就是一台电脑的性能。
        外设就比较简单了,包括摄像头、GPS定位模块、蓝牙模块、重力感应模块、语音模块等等。路由器芯片提供IIC,IIS,SPI,URAT,USB,PCM,GPIO等标准的接口,各种信号的路由器根据这些接口添加各种外设,只有你想不到的,没有集成不到一块的,尤其现在IOT的概念兴起,将来的路由器会和各种各样你想不到的外设联系起来。
        路由器的控制就是通过机器指令对各种外设的控制和信号的收发,所有的控制单元在CPU这都被抽象成一段内存地址(或者叫寄存器地址),所有的操作几乎都是一个模式,就是对寄存器的操作(读或者写)。
        OK,返回说RT3052的Datasheet,整篇分为四个章节:
            1. Pin Description
            2 Maximum Ratings and Operating Conditions
            3. Function Description
            4. Package Physical Dimension
        对于软件开发主要看的就是第三章。
            3.1 Overview
            3.2 Memory Map Summary
            3.3 MIPS 24KEc Processor
            3.4 System Control
            3.5 Timer
            3.6 Interrupt Controller
            3.7 UART
            3.8 UART Lite
            3.9 Programmable I/O
            3.10 I2C Controller
            3.11 SPI Controller
            3.12 Generic DMA Controller
            3.13 PCM Controller
            3.14 I2S Controller
            3.15 Memory Controller
            3.16 NAND Flash Controller
            3.17 Frame Engine
            3.18 Ethernet Switch
            3.19 USB OTG Controller & PHY
            3.20 802.11n 2T2R MAC/BBP
        第三章的每一节的结构都是相同的,一般都分三个部分,第一节讲功能模块的特性,第二节讲功能模块的原理,第三节就是寄存器描述。
        限于篇幅原因,我只拿最简单的GPIO模块来进行分析,其他的可以触类旁通。RT3052最多可支持52个GPIO口,但大多数GPIO与SDRAM, PCI, MDIO, JTAG, UART-Lite, UART, SPI, PCM ,
I2C是复用的口,也就是说如果你启用了I2C,那对应引脚的GPIO功能就没有了。决定这个引脚是否用于GPIO在 3.4节 system control 中有说明。GPIO在这个芯片里被分成了三组:0-23;24-39;40-51;每组GPIO对应10个寄存器:
        0x00 _INTinterrupt status
            0x04 _EDGEedge status
            0x08 _RENArising edge interrupt enable
            0x0C _FENAfalling edge interrupt enable
            0x20 _DATAdata
            0x24 _DIRdirection
            0x28 _POLpin polarity
            0x2C _SETset PIO data bit
            0x30 _RESETclear PIO data bit
            0x34 _TOGtoggle PIO data bit
        举个例子,操作GPIO01,如果只想将GPIO置高或拉低,前4个寄存器都是中断相关这里用不到,需要将GPIO设置为输出口,将0x24 _DIR寄存器相应的位置1,然后通过对 0x2c,0x30,0x34相应的位置1来对GPIO进行置1,置0和反转操作。
        芯片的DataSheet就是这样,像本字典,不用都看,但要会查。当然想要游刃有余的看Datasheet还需要你对各种标准接口特性有一个熟练的掌握,大体说到这里,关键还是多实践。

---------------------------------------------------------------------------

SDK下载地址:   https://github.com/aggresss/RFDemo

第八期 RT3052F芯片分析 《路由器就是开发板》相关推荐

  1. 第二十五期 总结《路由器就是开发板》

    在读<人人都是产品经理>这本书时,我最大的收获就是:不光要低头拉车,还要抬头看路.研究技术为了一个问题不吃不睡是经常的,但为了一个超出个人挑战能力的问题浪费时间而影响到团队的进度是万万不可 ...

  2. 第十期 路由器调试之HelloWorld 《路由器就是开发板》

            前面几期都是在做准备工作,这一期我们开始实际操作.很多教程的开始都喜欢用HelloWorld来先做个演示,我也不例外,在硬件开发板教程里流水灯就是一种HelloWorld,程序简单,只 ...

  3. 第一期 前言 《路由器就是开发板》

    大家好,路由器就是开发板这个提议最早是在2010年的时候在逛一个国外的论坛时看到有人提到的,那时我还处在一个从论坛上下载一个固件刷成功后兴奋不已的阶段.上大学时WIFI刚刚兴起,还是802.11b的年 ...

  4. 第二期 开发板选型 《路由器就是开发板》

            首先说明一下我为什么要用路由器作开发板.         第一,路由器是一件成熟的商品,它经历了厂商和消费者的考验,其设计肯定是相对成熟的,我们用它作开发板是在这个路由器经历了完整的产 ...

  5. Banana Pi BPI-R64 开源路由器 MTK MT7622 64位芯片方案设计,智能路由开发板

    Banana Pi BPI-R64 开源路由器 MTK MT7622 64位芯片方案设计,智能路由开发板 香蕉Pi R64是一个MTK7622 芯片路由器的开发板,它可以运行在各种开源操作系统上,包括 ...

  6. 分析各家2440开发板的性价比(初学者如何选择开发板)

    分析各家2440开发板的性价比(初学者如何选择开发板) 作者:gooogleman 邮箱:gooogleman@foxmail.com 地址:http://blog.csdn.net/goooglem ...

  7. 分析各家2440开发板的性价比 初学者如何选择开发板

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 分析各家 ...

  8. 分析各家2440开发板的性价比(转自Gooogleman)

    作者:gooogleman(wogoyixikexie@gliet) 我曾经在大学买过两个ARM9,经历了纠结的入门过程 http://blog.csdn.net/gooogleman/archive ...

  9. 第七期 OpenOCD配置分析 《路由器就是开发板》

    这一节我们来说说OpenOCD.刚开始接触嵌入式硬件时只知道写程序,觉得调试根本不需要,随着时间的积累和问题复杂度的提升,才发现调试对于一个系统的重要性.生活中很多这样的例子,调试,永远都是事物良性发 ...

最新文章

  1. Hibernate(九)一对多双向关联映射
  2. 自定义控件:QQ气泡效果粘性控件的实现
  3. office2016打开PPT出现解决VBE6EXT.OLB不能被加载问题的解决办法
  4. 捷克 签证_一位捷克开发人员构建了可在您的浏览器中直接运行的语音合成器
  5. android按钮控件常见问题,Android的基本控件和Activity的应用总结
  6. 十多款优秀的Vue组件库介绍
  7. gnuTLS 提供的 DTLS-API
  8. 浅谈JSONP 的本质工作原理
  9. 固定资产管理系统如何解决企业固定资产管理混乱的问题?
  10. netapp存储设备更换硬盘
  11. linux系统下如何github,在Linux系统下使用Github的基本教程
  12. Unity Shader :实现漫反射与高光反射
  13. HarmonyOS无法添加outlook日历(报错该账户名称已被使用)
  14. 中国石油大学《计算机应用基础》第三次在线作业
  15. Scratch课程设计(二)
  16. 数组,数组的定义,数组的注意事项
  17. oracle错误代码大全(超详细)
  18. Exynos_4412——RTC实验
  19. 二进制/八进制转换器
  20. 淘宝关键词API接口、1688、京东、拼多多平台商品信息获取采集

热门文章

  1. Vue中img动态绑定图片的地址
  2. html隐藏视频图标教程,抖音怎么隐藏视频?抖音设置视频权限隐藏视频教程
  3. 教你用python爬取抖音app视频
  4. java发微信_java访问微信接口发送消息
  5. linux echo -e 用法
  6. java linux root权限管理_Java 执行root 权限linux命令
  7. Python中单引号,双引号,三引号
  8. 基克的聚合 机器人_LOL基克的先驱是什么_LOL不为人知的装备基克的先驱_玩游戏网...
  9. paper阅读慢?免费速读工具ChatPaper上线啦
  10. 《犯罪心理》名言部分