串口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 ↩︎

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