- 博客(111)
- 资源 (1)
- 收藏
- 关注
原创 导热与冷却
通信模块由于长时间大功率发送,有时可能导致电路板的温度变化,而不同的温度下,有些器件的工作状态会随温度发生变化,遇到些问题,在某些场景下需要了解温度的变化的情况,所以找了一些基本资料来拟合温度的变化曲线;傅立叶定律/热传导定律在导热现象中,单位时间内通过给定截面的热量,正比于垂直于该界面方向上的温度变化率和截面面积。Q=−kdTdx∗AQ=-k\frac{dT}{dx}*AQ=−kdxdT∗A其中k称为热导率或热导系数,A为导热面积;牛顿冷却定律冷却定律物体的冷却速度,与其与当前环境温度的温
2020-09-21 22:43:59
1042
原创 牛顿迭代法求解开根号、泰勒展开式求解arctan及cordic的原理
牛顿迭代法求解开根号求解A的开根号,设值为x,则:$ y=x^2-A $求导$ y’=2x $某一次迭代$ x=x_n $$ y_n = x_n^2-A $目标值$ y_n = x_n^2-A = 0 $$ x_{n+1} = \frac{0-y_n}{2x_n}+x_n= \frac{A-X_n^2}{2x_n}+x_n = \frac{A}{2x_n}+\frac{x_n}{2} $式子中的除2可以通过移位实现,$ \frac{1}{x_n} $再次使用牛顿
2020-07-08 09:07:30
2829
原创 快速傅立叶变换推导
离散信号傅立叶变换X(k)=∑n=0Nx(n)WNnkX(k)=\sum_{n=0}^Nx(n)W_N^{nk}X(k)=∑n=0Nx(n)WNnk其中WN=e−j2πNW_N=e^{-j\frac{2\pi}{N}}WN=e−jN2πk=0,1,...,N−1k=0,1,...,N-1k=0,1,...,N−1基2时域抽取FFT离散傅立叶变换为X(k)=∑n=...
2019-11-01 21:51:07
545
原创 牛顿迭代法计算整数除法
假定x、y的值分别为M和N,需要计算$ x \div y $的值$ x = N $$ y = M $将除法格式变换为数据相乘$\frac{x}{y} = x\times\frac{1}{y} = N\times\frac{1}{M} $如何得到 $ \frac{1}{M} $,如下方程为0时刻的解$ f(x)=\frac{1}{x}-M \quad (EQ.1)$可导...
2019-10-21 22:05:58
17940
1
原创 FusionF1 DSP结构知识
完美不是一个小细节;但注重细节可以成就完美。–米开朗基罗专用DSP和通用处理器最大的差别在于,有很多特殊的计算处理来提高运算效率。在提高运算效率方便,从大的方面可以优化算法,而小的方面可以细微到通用寄存器的使用、变量类型的定义等。使用F1 DSP有一段时间,一直没有细致地了解其结构细节。而了解其工作细节,可以更好地提高运算效率。如下的描述,一部分是文档中直接得到的信息,而另外一部分为实验结果的理...
2019-07-24 06:08:23
2494
2
原创 NPDCCH发送周期解析
有时看问题时,需要确认下行NPDCCH是否有漏解周期的情况,手动计算时间稍有麻烦,所以搞了个python脚本来产生NPDCCH的解码周期,没考虑映射到非锚载波上的情形。NPDCCH子帧的计算参数NPDCCH的子帧计算是根据配置的Rmax、周期,并排除周期内的公共子帧来得到。亦即NPDCCH按照周期映射到除了同步信号、MIB、SIB1、SI以外的子帧上。NPDCCH的参数NPDCCH 子帧...
2019-07-13 22:12:23
2019
原创 NB-IoT中DCI Format N0格式解析
DCI Format N0的用途DCI: Downlink Control Information 携带在NPDCCH中,用于上下行发送的调度。DCI Format N0用于调度上行的NPUSCH。RAR random access response为什么需要先了解下RAR?在解析在DCI Fromat N0时刻,有些信息在RAR中已经作为前置条件存在,如子载波间隔subcarrier...
2019-06-02 10:50:14
3924
原创 关于NB模块的功耗优化
对于物联网终端模块,需要关注其功能、性能、安全成本、能耗等。最近折腾NB芯片模块的功耗,整理下过程中的一些想法。功耗的组成及优化从芯片电路角度,功耗分为动态功耗和静态功耗,电容充放电过程中的功耗.动态功耗包括翻转功耗(有效功耗)和短路功耗(无效功耗)。参考《参考SoC设计方法与实现》,芯片模块功率可以表示如下:p=1/2∗C∗Vdd2∗f∗Nsw+Qsc∗Vdd∗f∗Nsw+Ileak∗Vd...
2019-05-15 21:52:53
2664
原创 jupyter notebook 环境搭建
jupyter notebook是交互式笔记本,可以支持嵌入运行脚本、markdown语言、latex公式等,而且可以支持导出pdf等文件格式。之前用有道笔记比较多些,主要为了支持多个系统都可以查看记录内容。目前github可以支持私有库了,所以就考虑使用jupyter notebook+github的方式来进行信息记录。安装方式在python环境下使用pip安装即可,pip install ...
2019-04-14 08:17:51
776
原创 selenium中的Select模块以及firefox下载设置
一直以来在python脚本处理网页下拉框时,都是使用find_element,然后选择option,模拟鼠标click()操作的方式来进行处理的,最近发现selenium本身提供Select模块,可以有效进行处理。没找到哪儿有具体说明,查看了python帮助文档,学习了下具体使用方式。简单示例from selenium.webdriver.support.ui import Select...
2019-03-20 22:41:58
919
原创 python中的运算符重载与模块
在自定数据格式,需要进行算术、逻辑运算时,可以使用运算符重载,即可像原有的数据一样使用数学符号表达式。python中的运算符重载是通过重载特殊的系统方法来实现的,文档中称为special methods,函数本身一般一双下划线开头和结尾。加法示例自定义一个类似复数的数据格式,在没有重载__add__的情况下#!/usr/bin/pythonclass MyDemoClass: ...
2019-03-03 07:15:38
624
原创 在python和matlab之间使用sqlite文件传输数据
之前使用python画图,总觉得没有matlab图形功能强大,而python模式匹配处理数据比较便利。所以考虑使用python过滤数据,然后使用matlab画图分析。当然传输数据的方式可以有很多种,为什么选择sqlite数据库文件方式?考虑同一数据库文件可以存储多个不同格式数据,而且需要增加新的数据类型时,代码可以从数据库表名中得到相关信息,代码修改量比较小。python写入数据库文件c...
2018-12-19 23:01:49
515
原创 提交代码到github的方法
git工具的安装及卸载目前使用的mac平台,下载地址安装git地址https://git-scm.com/download/machttps://sourceforge.net/projects/git-osx-installer/readme中提供的卸载git方式Run the uninstall script in /usr/local/git/uninstall.sh...
2018-11-11 13:05:46
327
原创 python操作sqlite3数据库
python的DB-API可以操作多种类型的数据库,sqlite类型属于轻量级的数据库文件。简单示例import sqlite3baseConnect = sqlite3.connect('./database/futuresData.db3')cur = baseConnect.cursor()#cur.execute('DROP TABLE a1009')cur.execut...
2018-10-02 19:38:15
816
原创 python trace log扫描小工具
嵌入式系统平台上,由于资源有限,直接使用UART输出字符串debug信息时资源占比较高,而只使用数字标签表达含义时,又比较难分析。最近的环境遇到这样的问题,简单做了个小工具。编码时直接使用字符串形式,使用工具扫描成数字标签格式,在编译完的二进制文件中不包含字符串信息,当使用UART输出trace log后,再使用工具根据扫描生成的文件解析为字符串格式分析。主要流程图如下目录处理的几个问...
2018-09-16 23:03:52
954
原创 利用pandas将文件转换为txt文本格式
pandas为python中用于数据处理相关模块,当然其依赖与一些模块而存在,如使用read_excel读取相应文件时,需要安装相应的xlrd模块,否则将会出现错误提示。使用方法示例#!/usr/bin/pythonimport pandas as pd#... ...srdata = pd.read_excel('2017.xls',encoding='gbk')wit...
2018-07-31 21:40:07
9259
原创 mpl_finance模块使用
mpl_finance是python中可以用来画出蜡烛图、线图的分析工具,目前已经从matplotlib中独立出来。函数接口说明常用函数接口如下所示,函数命中的ochl分别对应open close high low,ax为plot的axes实例;其中quotes为(time,open,close,high,low,...)组成的序列。candlestick2_ochl(ax,opens...
2018-07-22 20:48:59
20221
原创 linker脚本文件知识
linker脚本文件的作用linker脚本文件是用来控制link过程的文件,文件中包含内容为linker的处理命令,主要用于描述输入文件到输出文件(目标文件)时各个内容的的分布及内存映射等等。linker文件可以自己提供,也可以有ld过程自己生成,当使用缺省的linker脚本文件时,ld的命令选项将会对其产生一定的影响,GNU编译环境中可以通过-T命令指定相应的liner脚本,在使用-T时,指...
2018-07-17 21:46:29
3667
原创 Eclipse搭建ARM交叉编译环境
工具安装eclipse版本: Version: Oxygen Release (4.7.0)安装ARM编译工具Help=>Install New Software=>addName为 GNU ARM Eclipse Plug-insLocation为 http://gnuarmeclipse.sourceforge.net/updates选择相应的安装包 GUN...
2018-07-17 21:38:42
8638
原创 ELF文件格式定义
ELF文件格式有32位及64位的两种,本质上差别不是很大,主要关注ELF 32位的文件处理方式。整体文件格式ELF为Executable and Linking Format的缩写,为编译生成的目标文件,编译生成的目标文件有几种格式 relocatable file、executable file 和 shared Object file三种,linking file 及 Executio...
2018-07-17 21:33:38
866
原创 robot framework环境简单试用
robot framework是基于python环境的测试框架,可以用于自动化测试,并将结果及log存储程标记文件文本格式。安装robotframework需要先安装python,使用python3.x版本;python -m pip install --upgrade --force pippip install robotframeowrkpip instlal wxPython 没有成功安装...
2018-06-10 21:19:31
597
原创 python使用ctypes与C混合编程
python作为胶水,可以非常方便地和其他语言进行混合编程,当然和C混合编程的方式也有很多种,如使用Cyptes、Cython、Boost、Swig等等。使用混合编程的好处在于可以理由各个语言优势,完成整个功能,如c语言的效率就明显高于python语言。Ctypes的方式,主要流程是将c源代码通过编译生成动态链接库dll或so文件,然后在python中使用ctypes动态链接库导入功能。调用方式示...
2018-06-05 22:07:32
1841
原创 Makefile的写法
Makefile是定义编译规则的文件,可以完成自动判断,选择编译功能,亦能减少手动处理工作量。之前对Makefile总是使用最熟悉的简单方式,觉得还是需要对细节再深入了解下。Makefile的基本功能Makefile是用来定义编译规则的脚本文件,采用make程序可理解的格式编写,一般计算机程序能理解语言总是通过最基本的变量、运算符、顺序、条件选择、循环等语法方式来表达。由于Makefile是用于帮...
2018-06-04 21:45:01
3543
原创 关于LoRa vs. NB-IoT RTT延时的分析
网络上信息是说NB-IoT比LoRa延时小,但具体对比测试没说明,理论上觉得小包情况下应该差别不大。LoRa速率情况LoRa有两种模式:LoRa模式 和 GFSK模式,GFSK模式速率比较高可以达到50kbps,有些频段不能使用GFSK模式。China 779-787MHz ISM Band频段:LoRa模式只有11kbps,GFSK可以达到50kbps分析理论的NB-IoT可以达到100多kbp...
2018-06-03 22:22:18
10437
1
原创 使用Apache和云虚拟机搭建web服务器
前置准备购买服务器和域名,并且将域名和服务器公网地址绑定,完成相应认证和备案。绑定后可以通过域名来访问服务器内容,当然如果没有域名,也可在浏览器中直接通过IP地址来访问。Apach简单介绍Apache HTTP Server由一个core和多个独立模块组成,模块可以静态编译于服务端成宿,或是在运行时动态调用(模块目录/Modules/ 或 /libexec/);核心工作依赖于APR(Apache ...
2018-05-21 22:51:37
1249
原创 trustZone、ARMv8及硬件安全处理的一些知识
TrustZone是什么基本的安全方式有加密和完整性保护等,加密通过密码口令或是秘钥方式,鉴权用来检查资源是否可用,如果资源遭遇破坏则会导致鉴权失败。由于存在多种攻击方式,软件方式包括软件病毒、恶意软件等,而硬件方式可以通过JTAG引脚、I/O引脚检测、电流电压检测、显微镜查看电路等进行攻击,所以需要从硬件软件层面设计有效系统来对抗攻击。TrustZone是ARM为了防止设备有效资源被拷贝、破坏或...
2018-05-07 21:33:51
4627
原创 Hash算法
Hash算法又名哈希、杂凑、散列算法等,可用来进行数字完整保护、消息认证、数字签名等,典型的hash算法有MD、SHA(Secure hash Algorithm)等。Hash算法时一种单向算法,从原始数据得到加密后数据,但是加密后数据无法恢复到原数据,主要理解下MD5的算法流程Hash算法大致流程MD5(信息摘要算法)简介MD是message digest 信息摘要的简写,输入的原始数据经过MD...
2018-04-29 20:00:51
529
原创 RSA算法
简介RSA(发明数学家名字第一字母合起来的简写)算法属于非对称加密算法,亦即加解密使用的密钥不同,使用公钥密码体制,加密时使用公钥,解密时使用私钥,RSA基于欧拉定理实现,算法可用来加密、数字签名及交换密钥等。整体加解密流程加解密流程身份验证身份验证加数字加密欧拉函数与欧拉定理欧拉函数得到的是某个整数n,小于等于其本身互质的整数有多少个,用φ(n)来表示。当n=1时,φ(n)=1,1和任何数构成互...
2018-04-26 22:59:28
438
原创 AES算法
简介AES为Advanced Encryption Standard的简称,其分组长度为128比特,密钥长度有128、192和256。不同长度的密钥在加解密是循环次数不相同,分别为10,12,14次。 整体加解密流程Nr取10、12或14。Plaintext为明文,ciphertext为加密后的密文。除了最后一个round,前面的round都是分为四个步骤subBytes、shiftRows、Mi...
2018-04-26 22:41:04
1691
原创 DES加密算法
简介DES为Data Encryption Standard的缩写,属于对称分组码算法,数据分组的长度为64比特。密钥长度为56比特(如果带有校验位则是64比特,每个8比特字节最后一个比特位是奇偶校验位)。奇偶校验位的值是前七个比特位的异或运算的结果取反(使用奇数校验),其结构如下: 算法流程1、 整体加解密流程由于加解密算法对称,即解密过程为加密的逆过程。2、加密整体过程IP为Initial P...
2018-04-25 23:33:34
1617
原创 加密基础知识
物联网对连接物体的基本要求包括可寻址、可通信、可控制;物联网具有的特征包括全面感知、可靠传递、智能处理。物联网整体上可以分为感知层、网络层和应用层,对应需要考虑各个层次的安全技术,而网络层如果是无线网络还需要考虑无线网络安全技术和互联网安全技术。物联网安全的目标主要是为了保证信息的可靠性、完整性、保密性、隐私等,硬件与软件需要从不同角度进行处理的才能达到物联网的安全要求,而加密技术是实现物联网安全...
2018-04-25 23:08:39
967
原创 JSON数据格式
JSON:JavaScript Object Notation的缩写,JS对象标记,一种数据格式,具体类型表示有String、Number、Boolean、Obeject、Array,而null用来表示空empty,类似python中的None。除了object和array其他称为scalar。String类型字符串格式,没有单独的字符而是,子符串的长度可以为0。string 双引号表示,
2018-04-19 22:13:23
498
原创 LoRaWAN协议
LoRaWAN协议定义了使用LoRa的MAC层规范,处在协议应用层与物理层中间的实现规范。LoRa没有开放的规范化物理层协议,而LoRa物理模块的接口上很多参数都可以进行配置,LoRaWAN同时对一些数据发送格式做了相应的限制。物理层消息结构上行带有CRC,而下行没有。层间组包格式简要参数说明:DevAddr 为设备地址(包含网络地址信息),Fport复用p
2018-04-11 23:36:16
5271
原创 LoRa网络结构
LoRa是专门设计用于物联网无线传输的流行技术之一,LoRa网络规范有LoRa物理层技术(非开放技术由semtech提供)和LoRAWAN(MAC多媒体接入层)开放层协议。协议层次LoRa整个网络协议层次如下,Application为应用层,常见的LoRaWAN协议即为LoRaMAC协议,协议定义的终端类型有ClassA、ClassB、ClassC三种类型,其主要差别ClassA上行触发下
2018-04-10 23:03:34
21314
原创 LoRa物理层技术
Semtech并没有开发LoRa物理层技术细节,只能从找到的一些文档及semtech产品的datasheet中找到一些相关信息。LoRa用于物联网无线传输的通信技术,LoRA设计用于低功耗,低速率,远距离传输,LoRa的速率范围从0.3kbps到50kbps,ADR(adaptive data rate)调度算法可以根据环境条件修改数据速率及发射功率。物理技术LoRa使用扩频技术来发送数据
2018-04-10 22:49:42
5942
原创 NB-IoT下行链路简单实现
用c简单实现了对NB-IoT下行链路的处理过程,没有性能验证和实现最优化(减少资源消耗,如MIPS及memory)等等。简单总结学习下实现的整体流程,对于细节的频偏估计,AGC等等相关部分还没仔细推敲。实现功能利用抓取仪器IQ数据进行小区搜索,公共信道的解码处理(NPBCH、SIB1、SI等)。由于没有整体协议功能,无法进入连接态获取相应的数据,所以无法进行NPDCCH/NPDSCH等信道
2018-04-08 21:39:36
3544
3
原创 以太网帧结构以及ARP RARP协议
以太网结构preamble有7个字节的10101010组成;SOF(Start-of-frame delimiter)1个字节的数据为10101011;Type指示Data部分携带的上层协议类型;FCS(Frame check sequence)包含了4个bytes的CRC,CRC的多项式为G(x)=x^32 +x^26 +x^23 +x^22 +x^16 +x^12 +x^11 +x
2018-03-18 15:53:18
1915
原创 SPI数据传输方式
SPI同步传输接口Serial Peripheral Interface,不同于I2C的是可以实现全双工通信。常说的四线SPI包括SCLK(Serial clock)用于产生同步信号、MISO(master in slave out)、MOSI(master out slave in)以及/SS(slave slecet)片选信号,其功能通过移位寄存器来实现。SPI功能结构SPI分为mas
2018-03-11 21:40:12
15578
原创 I2C总线数据传输方式
I2C是inter-integrated circuit的缩写,又名为TWI,只需要用两条物理线进行传输,分别命名为SDA和SCL, 用于传输serial data和serial clock。I2C工作时分为主从工作模式,而在同总线上可以存在多个主机。每一个连接到总线的器件都可以通过唯一的地址与总线连接,主机控制主机为发送器模式或是接收器模式。多个主机控制时可以通过冲突检测和仲裁防止数据被破坏。
2018-03-11 18:12:15
9678
1
原创 UART与USART知识
USART是Universal Synchronous Asynchronous Receiver Transmitter的简写,而UART为Universal Asynchronous Receiver Transmitter,最大区别在于后者没有同步模式。而UART属于全双工通信系统,当作为同步通信接口时需要切换为半双工模式,由于同步需要同步的clk接口。UART的数据帧格式一般包含其
2018-03-10 18:16:51
4788
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人