串口ISPHUB製作

■ 前言


爲了能夠使得基於STC單片機所組成的功能塊可以集成在一起完成實驗,通過串口進行信息交換。

本文給出了一個一對四的串口通訊HUB設計,可以使用一個具有雙UART端口的單片機與另外四個基於STC的ISP端口的單片機進行信息交換。

 

01實驗電路設計製作


1. AltumDesign 工程1

▲ 實驗板的原理圖

▲ 實驗板的原理圖

▲ 電路板的PCB圖640

▲ 電路板的PCB圖640

▲ 焊接後的電路板

▲ 焊接後的電路板

2. 管腳定義

  • 分支端口功能定義:
管腳 符號 功能
1 +5V 工作電源
2 TXD 連接MCU UART TXD
3 RXD 連接MCU UART RXD
  • 總端口功能定義:
管腳 符號 功能
1 +5V 工作電源
2 GND 底線
3 RXD0 連接MCU的TXD
4 TXD0 連接MCU的RXD
5 SEL1 通道選擇1
6 SEL2 通道選擇2

 

02功能測試


1.設計測試功能的STC8G1K082

▲ 測試電路的原理圖

▲ 測試電路的原理圖

▲ 焊接之後PCB

▲ 焊接之後PCB

單片機的UART2組成對外測試端口:

管腳 符號 功能
1 +5V 工作電源
2 GND 底線
3 TXD2 連接MCU的TXD2
4 RXD2 連接MCU的RXD2

2.測試功能板的單片機軟件3

  • 單片機時鐘35MHz,ISPUART 波特率:460800;

○ 調試LS138的譯碼

在SEL1,SEL產生二進制方波,觀察LS138的選通波形如下:

四路的LS138的選通波形都是一樣的。

▲ LS138的選通波形

▲ LS138的選通波形

○ 串口波形發送

▲ 在四個端口可以測量得到與MCU發送相同的波形

▲ 在四個端口可以測量得到與MCU發送相同的波形

3.測量兩個功能板

○ 功能板定義

測試功能板爲 HCTL-2020正交碼讀寫芯片 測試板。在它的SERIAL服務程序中增加命令:

} else IFARG0("sampleb") {
    nNumber = HCTL2020Read();
    SendChar((unsigned char)(nNumber >> 8));
    SendChar((unsigned char)nNumber);
}

發送命令“sampleb”,則獲得兩個字節的數據。

▲ 測試兩塊正交角度編碼器模塊

▲ 測試兩塊正交角度編碼器模塊

○ 修改main程序

在通常情況下,處理串口的消息都是在void main(void)中,每1ms處理接收到字符。這樣處理完命令所需要的時間就與命令的長度相同。爲了提高處理命令的速度,需要對程序處理串口命令做如下調整:

  • 提高main的loop頻率

將main程序中的 WaitTime(1),去掉。

    for(;;) {
        if(++nCount & 0x8000) ON(LED);        
        else OFF(LED);
//        WaitTime(1);
        //----------------------------------------------------------------------
        if(++nShowCount >= 500) {
            nShowCount = 0;
        }
        //----------------------------------------------------------------------
#if SERIALTXT_EN
        ConsoleDebug();
#endif //  SERIALTXT_NE
    }
  • 在ConsoleDebug() 處理完所有接收到的命令
void ConsoleDebug(void) {
#if UART1_EN
    unsigned char ucChar;
//    if(!UART1_CANRECE)	return;
    while(UART1_CANRECE) {
        ReceChar(&ucChar);
        SDPC(ucChar);
    }
#endif //
}

 

※ 結論


注意:在使用輪訓的時候,需要將主程序能夠及時響應命令,加快命令處理循環。
▲ 實驗平臺測量過程

▲ 實驗平臺測量過程


  1. AD工程文件:AD\Test\2020\Tools\ISPHUB.PcbDoc * ↩︎

  2. 測試AD工程文件:AD\Test\2020\Tools\TestISPHUBSTC8G.SchDoc * ↩︎

  3. 測試功能版STC8G1K08的C51程序:C51\STC\Test\2020\Tools\TestISPHUBSTC8G\TestISPHUBSTC8G.uvproj ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章