13 ayang1986

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 6k+

SPI通讯协议介绍

  来到SPI通讯协议了。废话两句,“SPI很重要”,这是我在学校时候听那些单片机开发工程师说的。出来实习,到后来工作,确实如此,SPI的使用很常见,那么自然重要咯。  SPI(Serial peripheral interface)即串行外围设备接口,是由Motorola首先在其MC68HCxx系列单片机上定义的,基于高速全双工总线的通讯协议。(又是高速,而且全双工,确实强大)被广泛应用于ADC、LCD等设备与MCU之间。  跟前面学习I2C、USART一样,学习一种协议,还是从两个层面分

2020-06-13 11:42:48

I2C通讯协议介绍

  I2C总线是PHLIPS公司在20世纪80年代推出的一种串行总线。具有引脚少,硬件实现简单,可扩展性强的优点。I2C总线的另一优点是支持多主控,总线上任何能够进行发送/接收数据的设备都可以占领总线。当然,任意时间点上只能存在一个主控。  I2C即是一种总线,也是一种通讯协议。在嵌入式开发中,通讯协议可分为两层:物理层和协议层。物理层是数据在物理媒介传输的保障;协议层主要是规定通讯逻辑,同一收发双方的数据打包、解包标准。打个比方,物理层相当于现实中的公路,而协议层则是交通规则,汽车可以在路上行驶.

2020-06-13 11:28:48

串口通讯介绍

串口通讯的物理连接和传输协议,是学习单片机串口编程的基础。本文参照《深入浅出玩转51单片机》和《零死角玩转STM32》书籍,对通讯以及串口一些基本概念做了详解。1. 串口通讯的基本概念1.1 基本方式基本方式分并行通讯和串行通讯1.1.1 并行通讯并行通讯是指数据的每一位同时在多根数据线上发送或者接收。其特点是各数据位同时传送,速度快、效率高,有多少数据位就需要多少根数据线,传送成本高。在集成电路芯片的内部、同一硬件板上各部件之间等的数据传送采用并行的

2020-06-13 11:14:45

UART详解

UART通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,通常称作UART) 是一种串行异步收发协议,应用十分广泛。UART工作原理是将数据的二进制位一位一位的进行传输。在UART通讯协议中信号线上的状态位高电平代表’1’低电平代表’0’。当然两个设备使用UART串口通讯时,必须先约定好传输速率和一些数据位。硬件连接硬件连接比较简单,仅需要3条线,注意连接时两个设备UART电平,如电平范围不一致请做电平转换后再连接,如下图所示:TX:

2020-06-13 10:48:35

关于DMA,TCM(ITCM和DTCM)和Cache的理解!

DMADMA=Direct Memory Access。这是一种通过硬件实现的数据传输机制。简单的说,就是不在CPU的参与下完成数据的传输。DMA是一种硬件设备。这种设备的工作原理是这样的:——首先CPU告诉DMA设备,要有一堆数据需要传输,为了效率而请它出马。(DMA请求)——DMA收到CPU的消息,开始准备。此时CPU把数据源地址、数据目标地址、传输数据量、传输模式等等参数告诉它。(DMA初始化)——DMA初始化完,向CPU发送消息“借你的总线用一用,我要开始传输数据了!”(总线出借,DM

2020-06-09 11:11:50

verilog 简单分频程序

偶数分频最简单二分频,在输入时钟上升沿翻转即可。N分频(N为偶数),计数器计数到N/2-1翻转。如进行4分频,count=4/2-1=1时翻转,6分频计数器计到2翻转。程序如下,经过实测验证,正确。时序如图:可以看出,从36到42是一个周期,6分频(42-36=6)奇数分频如三分频,对计数器进行模三翻转,即计数到1和2进行翻转,可以得到占空比为1/3或2/3的3分频时钟,程序如下:时序结果如图所示:三分频,占空比1/3(说明上电默认clkout初值为0)如若修改clkout初值为

2020-06-02 16:50:09

IDA 动态调试 ELF 文件

IDA 远程调试配置Windows 下的 IDA 在 IDA 的安装目录/dbgsrc/找到 linux_server 和 linux_serverx64 拷贝到 linux 虚拟机中 在 linux 中运行 linux_server 并在 linux 中运行要调试的 demo Debugger -- Attach -- Remote Linux debbuger Linux 下的 IDA ...

2020-05-22 20:26:38

_beginthread 和 CreateThread 区别

程序员对于Windows程序中应该用_beginthread还是CreateThread来创建线程,一直有所争论。本文将从对CRT源代码出发探讨这个问题。I. 起因今天一个朋友问我程序中究竟应该使用_beginthread还是CreateThread,并且告诉我如果使用不当可能会有内存泄漏。其实我过去对这个问题也是一知半解,为了对朋友负责,专门翻阅了一下VC的运行库(CRT)源代码,终于找到了答案。II. CRTCRT(C/C++ Runtime Library)是支...

2020-05-21 19:25:29

CPU中断的工作原理,从最底层讲起

前言  中断的概念属于硬件层。虽然我们在进行软件编程时不会直接使用中断,但理解它对我们来说依然重要。  我们在使用线程切换及状态管理、异常处理、硬件与处理器的交互、I/O操作等指令时,中断都在默默的为我们服务。  处理器基于硬件封装对外的指令集,底层语言封装指令集为我们提供更加简单的抽象,高级语言基于底层语言赋予程序更明确的语义。可以看到在这条关系链条中,下层的变动会牵一发而动全身影响上层。而上层想要提高效率,改变机制也必须得到下层的支持。  像 I/O 处理的不断演进,从占用CPU等待到通

2020-05-16 11:46:26

交叉证书

证书4要素pubkey(公钥) ,有一个其一一对应的私钥,由证书拥有者保存。subject(名字),可以理解为证书的名字,你可以理解为 网站的域名。issuer(颁发者的名字),即上级证书的subject。signature(签名) ,上级证书使用私钥对当前证书进行签名的值。证书签名假设 有 3 级 证书首先 ,R1 CA证书 是由 R1证书签发,而www.taobao.com是由R1 CA证书签发。签发过程核心就是签名,比如 签发R1 CA证书时,拿R1证书的私钥对R1 CA证

2020-05-14 09:16:30

现代密码学:Hash函数Keccak

Hash函数的核心在于设计压缩函数。可以证明,如果压缩函数具有抗碰撞能力,那么迭代Hash函数也具有抗碰撞能力。2007年起,NIST开始向全球征集新的安全Hash算法SHA-3,最后的优胜者是Keccak。Keccak以及SHA-3在正式成为标准之前有很多不同程度的更改,我想这也是网上有关Keccak和SHA-3算法的资料都多多少少不太一致的原因。本文仅介绍Keccak-224/256/384...

2020-05-06 11:37:07

CRC详解

CRC-知识解析cyclic redundancy check写在前面的话:之前在做学校项目的时候用到了CRC 原理,但在网上查找的过程中,发现讲解CRC知识的资源很多,但是对新手比较友好的、讲的十分清楚的又很少,很多博主也不求甚解,弄得读起来心中常常不由自主地奔腾过上千个“为什么”“为什么”, 本文是我在阅读了许多资料的基础上整理、解析出来的文章,尽可能的对新手友好、解答CRC里面的一...

2020-04-28 10:44:09

CRC加密算法原理讲解

CRC加密算法原理最近在做UDP的通信,考虑到UDP的不可靠性,因此在传输信息时想加入CRC校验的方式来确保传输内容的完整性与正确性。在网上查看了很多关于CRC的理论以及代码实现,讲解的都不太满意,因此,决定写下这篇文章,一来加深自己对CRC的理解,再者也能帮助想了解CRC的小白们。一、CRC全称及其原理CRC的英文全称为Cyclic Redundancy Check,即循环冗余...

2020-04-28 09:10:20

对称加密算法常用的五种分组模式(ECB/CBC/CFB/OFB/CTR)

Q:为什么需要分组模式?A:明文的长度不固定,而分组密码只能处理特定长度的一块数据,这就需要对分组密码的算法进行迭代,以便将一段很长的明文全部加密,而迭代的方法就是分组的模式。一图全览五种分组模式五种模式详解1. ECB - Electronic Code Book, 电子密码本模式特点: 简单, 效率高, 密文有规律, 容易被破解最后一个明文分组必须要填充des/3des -...

2020-04-22 19:30:57

CentOS上同时安装Python2和Python3

CentOS 6自带了Python 2.6.*(CentOS 7则自带了Python 2.7)和一些非常好用的功能,如yum。但是,注意不要随便升级自带的Python以免yum不可用。 新版本将安装在/usr/local目录下以避免和自带的版本冲突。(不确定自己带的是什么版本的python的同学可以使用Python -v的命令进行查看)文中的所有示例命令您最好以root身份运行或者在命令...

2020-04-21 16:37:51

Https协议详解

Https 介绍什么是HttpsHTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSLHttps的作用内容加密建立一个信息安全通道,来保证数据传输的安全;身份认证确认...

2020-04-18 13:55:52

IBC公钥密码

1.IBC概述基于标识的密码(Identity-Based Cryptography)简称IBC,是与RSA、ECC相比具有其独特性的又一种公钥密码。这种独特性表现在其公钥是用户的身份标识,该标识可以是任何有意义的字符串,比如email地址、电话号码、身份证号等,而不再是随机乱码。IBC这个概念最初出现于1984年Shamir(RSA密码创始人之一)的论文“Identity-bas...

2020-04-15 09:48:34

ubuntu 64上的GCC如何编译32位程序

运行命令gcc -v显示:Target: x86_64-linux-gnu所以,我这里的gcc默认生成64位的程序。如果想编出32位的程序,就要加 -m32选项。可是我尝试了,还是不行。原来,需要安装东西。$sudoapt-getinstallbuild-essentialmodule-assistant $sudoapt-getins...

2020-04-09 10:57:15

RSA签名的PSS模式

一、什么是PSS模式?1.1、两种签名方式之一RSA-PSSPSS (Probabilistic Signature Scheme)私钥签名流程的一种填充模式。目前主流的RSA签名包括RSA-PSS和RSA-PKCS#1 v1.5。相对应PKCS(Public Key Cryptography Standards)是一种能够自我从签名,而PSS无法从签名中恢恢复原来的签名。openssl-...

2020-04-02 10:21:25

计算机噪声

序  大家多少都遇到过关于“随机数”和“噪声”的问题,随机数和噪声直接关系到仿真结果的好坏。而计算机产生的随机数是伪随机数,不真正的随机,那么我们使用的随机数,包括Matlab产生的随机数的质量到底如何呢?什么时候使用什么样的随机数可以满足系统的需要呢?下面我就我搜集到的资料对计算机噪声做一点介绍,希望能对大家有帮助。  如果你是初学者或者想对计算机噪声有一个全面的梳理的话,请从第一部分开...

2020-03-17 20:17:27

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。