DRAM 原理 1 :DRAM Storage Cell

作者:codingbelief 发布于:2016-6-8 16:41 分类:基础技术

接下了 X Project SDRAM 的任务,趁机整理下 DRAM、SDRAM、DDR SDRAM、LPDDR 等相关的内容。

这是第一篇,简单介绍下 DRAM Storage Cell 的相关内容。

阅读全文>>

标签: SDRAM dram

评论(13) 浏览(66471)

蓝牙协议分析(6)_BLE地址类型

作者:wowo 发布于:2016-6-7 11:40 分类:蓝牙

也许关注BLE的同学都注意到了,BLE设备有多种类型的设备地址,如Public Device Address、Random Device Address、Static Device Address、Private Device Address等等。如果不了解内情,大家肯定会被它们绕晕。不过存在即合理,这样看似奇怪的设计,实际上反映了BLE的设计思路以及所针对的应用场景。让我们通过本文一窥究竟。

阅读全文>>

标签: 蓝牙 BLE public random static private resolvable address

评论(46) 浏览(72192)

蓝牙协议分析(5)_BLE广播通信相关的技术分析

作者:wowo 发布于:2016-5-27 16:15 分类:蓝牙

大家都知道,相比传统蓝牙,蓝牙低功耗(BLE)最大的突破就是加大了对广播通信(Advertising)的支持和利用。关于广播通信,通过“玩转BLE(1)_Eddystone beacon”和“玩转BLE(2)_使用bluepy扫描BLE的广播数据”两篇文章的介绍,我们已经有了一个整体的认识。本文将依此为基础,从技术的角度,分析和理解BLE协议中有关广播通信的定义和实现。

注1:之前的蓝牙协议分析文章(如“蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍”),偏向于从横向、从大而全的角度,介绍蓝牙协议,以便让大家有一个整体的认识。而从本文开始,我们会收敛到一个个的功能点上,以功能为出发点,从纵向的角度,游走于蓝牙协议的各个层次中,以加深对蓝牙协议的理解,进而达到融会贯通的目的。

阅读全文>>

标签: 蓝牙 BLE scan advertising 广播 discover connect

评论(57) 浏览(86678)

ARMv8之Observability

作者:linuxer 发布于:2016-5-25 18:22 分类:ARMv8A Arch

在ARMv8关于memory order描述章节中,大量使用了observer、observed、completion等术语,本文主要是澄清这些术语,为后续描述memory order和memory barrier相关指令打下基础。另外,在几个星期前,和codingbelief同学讨论DMB指令的时候,他提出了一个尖锐的问题:什么是PE observes memory access,是指 cpu 执行了 memory access 指令么?当时我对这些概念也比较模糊,未能回答他的疑问,现在希望这份文档可以解决这个问题。

阅读全文>>

标签: ARMv8 observer observed

评论(8) 浏览(10939)

玩转BLE(2)_使用bluepy扫描BLE的广播数据

作者:wowo 发布于:2016-5-19 15:17 分类:蓝牙

在linux平台下,bluez是一个很不错的软件,提供了很多基于命令行的测试工具,如hciconfig、hcitool、hcidump、bluetoothctl等。利用这些工具,我们可以方便的测试、demo各种蓝牙功能。例如,在“玩转BLE(1)_Eddystone beacon”中,我们利用hcitool命令,演示了将手机变成一个Beacon设备的神奇效果。

Beacon的演示,从本质上看,是BLE Advertising(广播)功能的测试和验证。自然而然的,我们会好奇:怎么接收这些广播数据呢(其实就是BLE Scanning功能)?这就是本文要介绍的内容。

虽然hcitool(以及后来的bluetoothctl)可以进行简单的LE scan操作,但返回的结果仅包括简单的地址和名称,显然无法满足我们的需求(要知道,BLE的广播数据可能包含其它内容哦,如我们的Beacon演示)。怎么办呢?不着急,强大的python出马了。

阅读全文>>

标签: 蓝牙 Bluetooth BLE scan bluepy advertising

评论(15) 浏览(38243)

ARMv8之memory model

作者:linuxer 发布于:2016-5-18 12:09 分类:ARMv8A Arch

从阅读ARMv8手册的第一天起,我就饱受memory order、memory barrier、coherent、consistency等概念的残害,各种痛苦,各种迷茫,各种试图放弃,各种欲罢不能……,现在,终于收拾心情,再 次出发,希望这次能把近期关于ARMv8上的memory model相关的知识点整理出来,让自己更清楚一些,也顺便希望能够和大家一起探讨。

本文主要关注shared-memory system,其他的系统不在本文的考虑范围。

阅读全文>>

标签: Model ARMv8 sequential consistency relaxed

评论(7) 浏览(17915)

ARMv8之Atomicity

作者:linuxer 发布于:2016-5-13 19:18 分类:ARMv8A Arch

本文主要解析ARMv8手册中的Atomicity这个概念。首先给出为何定义这样的概念,定义这个概念的作用为何?然后介绍Atomicity相关的概 念,很多时候我们引用了手册的原文,但是由于这些原文象天书一样难懂(可读性比较差),因此,我们使用程序员可理解的一些语言来描述这些概念。最后给出 ARMv8上,各种内存操作指令,针对各种memory type,其Atomicity的特性为何。

阅读全文>>

标签: Coherent Single-copy atomicity Multi-copy

评论(8) 浏览(17986)

玩转BLE(1)_Eddystone beacon

作者:wowo 发布于:2016-4-29 22:50 分类:蓝牙

你相信两条命令就可以把自己的破手机变成一个Beacon节点吗?不相信的话就接着往下看吧。

通过前几篇“蓝牙协议分析”相关的文章,特别是“蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍”,相信大家对BLE协议栈已经有了基本的认识。在继续后续的分析之前,我们有必要换个视角,从应用的角度,以“玩”的心态,学习并理解BLE的工作原理,并作为后续分析文章的引子和入口。这就是撰写“玩转BLE”系列文章的缘由。

之所以起名为“玩转”,是因为我不会在这些文章中涉及任何的技术细节,仅仅是描述一些操作步骤,普及一些蓝牙BLE有关的使用场景。

另外,由于Linux平台使用的蓝牙协议栈是Bluez[1],Bluez协议栈提供了很多方便、灵活又强大的测试工具(如hcitool、gatttool等)。因此,简单起见,在写“玩转”系列文章的时候,我会尽可能的使用这些测试工具,而不引入复杂的编程手段。从另一个角度看,“玩转”系列文章也是BLE测试的一些步骤总结,方便自己和他人查阅。

本文是“玩转”系列文章的第一篇,以简单的两条hcitool命令,将自己的手机或者开发板变成一个BLE Beacon节点,进而体会BLE技术的简洁和神奇。

阅读全文>>

标签: BLE eddystone beacon hcitool

评论(16) 浏览(33835)

蓝牙协议分析(4)_IPv6 Over BLE介绍

作者:wowo 发布于:2016-4-9 16:44 分类:蓝牙

蓝牙是个奇葩的家伙:它总是以后来者的身份出现,很喜欢打仗,而且还不落下风(有点像某讯的风格)。90年代末期和Wi-Fi的无线标准之争如此,当前和802.15.4系(ZigBee、RF4CE、Thread等)的IoT之争,也如此。

90年代末期,蓝牙刚出道的时候,就曾叫嚣着把Wi-Fi(802.11)从地球上抹去。反过来,1999年Wi-Fi 802.11b标准发布后,也宣称会把蓝牙干掉。最终,二者划江而治,瓜分了天下,Wi-Fi占据了家庭和办公室中的电脑网络,而蓝牙成为了广受欢迎的电脑和外设之间的连通性工具。

与此同时,在IoT的战场上,以ZigBee(2001年)为代表的802.15.4技术,苦心经营近15年,依旧不愠不火、默默无闻,而蓝牙BLE技术问世(2010年)至今,短短5年左右的时间,已经红遍大江南北,装机量爆棚。于是,硝烟再起。

标准之争,不是本文的议题,我们要思考的问题是:蓝牙有何长处,可以支撑它四处征战?答案是“灵活性”。本文将以用于支持IPv6的IPSP(Internet Protocol Service Profile)为例,说明这个特性。

阅读全文>>

标签: BLE ipv6 ipss ipsp

评论(5) 浏览(28527)

蓝牙协议分析(3)_蓝牙低功耗(BLE)协议栈介绍

作者:wowo 发布于:2016-3-12 22:32 分类:蓝牙

通过“蓝牙协议分析(2)_协议架构”的介绍,大家对蓝牙协议栈应该有了简单的了解,但是,肯定还有“似懂非懂、欲说还休”的感觉。有这种感觉太正常了,毕竟蓝牙协议是一个历史悠久又比较庞大的协议,没那么容易理解。

因此,本文将换个视角,从协议栈设计者的角度,思考如下问题:

为什么会有蓝牙协议栈(Why)?

怎样实现蓝牙协议栈(How)?

蓝牙协议栈的最终样子是什么(What)?

另外,我们知道,当前的蓝牙协议包含BR/EDR、AMP、LE三种技术,为了降低复杂度,本文将focus在现在比较热门的BLE(Bluetooth Low Energy)技术上(物联网嘛!),至于BR/EDR和AMP,触类旁通即可。

阅读全文>>

标签: Bluetooth BLE l2cap gap 蓝牙低功耗 att gatt

评论(50) 浏览(91310)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog