2019年12月15日
キーワード:UART、SPI、I2C
デバイス間の通信は、一般的に次の2つのタイプに分けることができます。
1、シリアル通信。
図2に示すように、パラレル通信。
シリアル通信は、次のカテゴリに分類されることができます。
1、UART。
それは、全二重通信モードで、2線式の通信を必要とします。
2、I2C。
また、基本的に二つの通信線であるが、それは、半二重通信方式に属します。
3、SPI。
これは、3本の通信線、全二重通信モードが必要です。
シリアル通信プロトコル:
シリアル通信プロトコルは、通信プロトコルが下記に示す構造を有する、一般に組み込み開発に使用される通信プロトコルです。
シリアル通信線トランシーバはデータがアイドル状態でないときに、通信データの発生はランダムであるため、アイドル状態は、一般的に高いレベルで発現されます。あなたがデータを送信する必要がある場合には、シリアル通信回線は、我々は、データの送信を開始することを受信者に通知するために通信を可能にするために、「アクション」でなければならず、このデータは、単にデータを受信する準備ができて受信されます。このデータは、「アクション」の開始前に送信された「ビットを開始します。」と呼ばれています 通常の時間のレベルまで通信フラグの開始を示します。
シリアル通信の欠点は、その低い通信速度、および誤りがちです。
I2C通信プロトコル:
I2C通信は、UART通信の改良版です。また、2つの有線通信を使用するが、「クロック信号」を送信するための専用線があるが。基準クロック信号は、高および低交流矩形波と呼ばれています。両方の標準的な読み出しおよび書き込みデータとしてクロック信号への通信。例えば、I2Cの規定は、送信者が低レベル状態でデータクロック信号、及び受信機のみクロック信号位相の立ち上がりエッジでデータを読み出す場合にのみ送信されます。この厳密な別読み取りおよび書き込みモードは、通信の精度を確保することができます。同時に、また、制限はI2Cのみ半二重通信モードとして使用することができる死んだ単一線I2C通信、なぜなら。
SPIプロトコル:
UARTプロトコルI2C通信の前には、それぞれの長所と短所を持っています。SPIは、両方のそれらの組み合わせの利点の製品です。SPI通信プロトコルは、全二重通信を実現することができるだけでなく、通信の精度を確保します。一方でその通信速度は、3の最速です。
これは、いくつかの一般的なシリアル通信プロトコルの前にあります。トランシーバシリアルデータ通信は、「秩序」を必要とする、通信は、データの送受信の並列「障害」で行うことができます。この異なる通信モード、直接パラレル通信速度をもたらすことシリアル通信よりもはるかに高いです。しかし、それは高価であるパラレル通信を犠牲にして、それははるかに多くの通信回線のシリアル通信よりも必要です。
串并行通信模式各自都有它们的优缺点,在实际使用过程中需要结合自身需要来选择应用。
在ARM编程中,可以直接对地址进行赋值而不需要创建一个变量,如:
*(volatile unsigned int *)0x11400020 = 0x22;
上面的 0x11400020 即表示ARM芯片中某个寄存器的地址,这条语句的意思就是给这个地址所代表的寄存器赋值 0x22。当然这种编程方式其实并不适合在实际工作是使用。
在ARM下开发串口通信程序的步骤其实很简单:
1、根据原理图找到对应的CPU控制管脚;
2、根据芯片手册找到对应的寄存器;
3、配置串口通信寄存器的模式(功能选择、停止位、校验位、波特率等);
4、编写程序进行收发控制。
唯一的难点就在于阅读芯片手册与寄存器含义了。只要搞懂了这些寄存器的含义,配置正确了,串口通信程序也就很容易写了。
不止是串口通信,任何一种涉及到芯片寄存器的配置都是这种开发方式的。
另外,其实在ARM开发中,C语言中是可以直接调用汇编函数的,C语言中也可以直接嵌入汇编代码。