这里面的图都在下面附件里,下载下来看吧~
微机系统中存在两种通信方式,同步和异步通信。同步通信是指数据节一起传输,速度比较快,但是有几个数据就要有几根数据线,因此占用的资源比较多。但是串行通信是一个一个数据(按二进制,低位在前顺序发送)地发送,最少只需要一个数据线,因此适用于距离远对速度要求不是很高的情景。
串口通信的两种最基本的方式:同步串行通信方式和异步串行通信方式。
同步串行是指SPI(Serial Peripheral interface)的缩写,顾名思义就是串行外围设备接口。SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,TRM450是SPI接口。
异步串行是指UART(Universal Asynchronous Receiver/Transmitter),通用异步接收/发送。UART是一个并行输入成为串行输出的芯片,通常集成在主板上。UART包含TTL电平的串口和RS232电平的串口。 TTL电平是3.3V的,而RS232是负逻辑电平,它定义+5~+12V为低电平,而-12~-5V为高电平,MDS2710、MDS SD4、EL805等是RS232接口,EL806有TTL接口。
异步通信。异步通信采用相同的帧格式,数据以相同帧格式进行传输
。
如你所见,每一帧由起始位(0,设备准备接受信号),数据位(可以是八位五位六位七位),奇偶校验位(目前我也不是很懂),停止位(为1,空闲位,等待下一次传输开始)组成。
同步通信,通信双方采用同一个时钟(这是很鲜明的一个特点)。以同步字符作为传送的开始,从而使收发双方取得同步。每位数据占用的时间相等。字符数据间不允许有空位,如果处于空闲状态,则发送同步字符。
1.波特率。每秒传输的二进制代码的位数,单位位/秒。假设每秒120字符,一个字符十位(无奇偶校验位),则波特率1200b\s,位传送时间宽度Td=1/1200=0.883ms.
在异步串行中,接受设备必须和发送设备保持相同的传送波特率。并且每个字符数据的起始位和发送设备保持同步。
2.这个我也不是很懂,就简单说一下,接受/发送始终。二进制数据在传送过程中以数字信号的形式出现。无论接受还是发送,都必须有始终信号对传送的数据进行定位。
Rs232和TTL的区别
首先说一下,他们在数据传送上都是一个bit位传输(串行),数据格式也是一样的。最大的区别是他们硬件上有很大的不同。TTL以Vcc作为高电平1(3.3v或5v),以0作为低电平。
而Rs232以-3~-15作为高电平,3~15作为低电平,这种设置使得Rs232更抗电磁干扰和信号的衰减。因此陀螺仪串口发送采用了Rs232,但是你得先把TTL转换成Rs232才行。我现在就是做这个东西,是的,我就是在完成学长布置的作业的情景下写了这个博客。
为什么Rs232最高是13V呢?我也不知道。。。可能不同232有不同的波形吧。
如何转换Rs232和TTL呢
两者之间的转换不是简单地电平转换,还要考虑到其他的一些元素,比如调节和矫正一些电平,确保有害的Rs232电压不会破坏为控制器的串口针脚。
之后,我查看资料,找到了SP3232芯片,这种芯片可以完成上述功能。首先,根据陀螺仪提供的原理图,我画了这个部分的原理图,之后上网查看SP3232的参考手册,我画了他的PCB.(你可以在参考手册的最后一面找到相关数据,然后在原理图库里点工具,点IPC(第一个)去根据向导设置芯片,当然其中还涉及到一些数据要根据实际情况变换,你可以在视频里看到)
这是我画的原理图和PCB,中间的元件库都是我自己画的,是不是很厉害,哈哈哈。不要老用别人的库,要不然你自己搞开发的时候就不知道怎么办了。(虽然我还没试过)