CN111198594B - 一种stm32内部hsi时钟自适应串口通讯系统 - Google Patents
一种stm32内部hsi时钟自适应串口通讯系统 Download PDFInfo
- Publication number
- CN111198594B CN111198594B CN201911385663.9A CN201911385663A CN111198594B CN 111198594 B CN111198594 B CN 111198594B CN 201911385663 A CN201911385663 A CN 201911385663A CN 111198594 B CN111198594 B CN 111198594B
- Authority
- CN
- China
- Prior art keywords
- module
- clock
- communication
- hsi
- arm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种STM32内部HSI时钟自适应串口通讯系统,包括时钟配置模块、分析模块、ARM与NB模组通讯模块、时钟自适应模块、E2PROM以及外设模块。通过调用时钟自适应模块的程序,无需增加硬件成本彻底解决了由于温度变化引起的通讯失败问题。
Description
技术领域
本发明涉及使用内部晶振的ARM的内部时钟频率技术领域,具体涉及一种STM32内部HSI时钟自适应串口通讯系统。
背景技术
万物互联是时下产业发展的一个新主题,意法半导体推出的STM32L0XX ARM(即微处理器)因为具有低功耗高性能的特点被物联网业界广发使用,同时被物联网业界广泛使用的还有上海移远公司推出的NB-IoT系列(以下简称NB)模块,我公司(西安中星测控有限公司)就是其中一家。
在使用STM32L0XX ARM芯片时,因为使用外部晶振功耗大,晶振频率越高功耗越大,要降低功耗,就的用ARM(即嵌入式单片机)芯片的内部HSI(振荡器时钟)时钟。因为ARM芯体内部时钟晶体受温度影响比较大,在同一配置参数条件下,经常遇到ARM串口与NB通讯常温下通讯良好,遇到环境或者气温变化较大时出现通讯失败,经过我公司技术人员现场跟踪调试,发现模组返回ERROR(即错误):523的错误故障信息,523的意思是:串口帧错误,即由于温度变化引起ARM新体内负责产生HSI时钟源的芯体材料工作特性发生变化,从而引起ARM与NB模组通讯失败。
如果改用外部晶振,会引起现有产品工作年限减短问题。遇到这种情况业界通常是在设计电脑板时在ARM周边增加一个时钟校正器件,在给电脑板上电时,外围时钟校正电路发出一个标准方波,ARM通过采集方波周期自动校正芯体内部HSI时钟接近标准时钟,保证通讯成功率。时钟校准完成后就可以给外围校准时钟器件断掉,以降低功耗。这样做虽然也提高了ARM与NB通讯的成功率,但当环境温度产生变化时,依然不能保证HSI时钟不发生偏移,不能彻底根除通讯失败问题,而且增加了材料成本与电脑板布板面积。
发明内容
针对上述技术问题,本发明的目的在于提供一种STM32内部HSI时钟自适应串口通讯系统,通过时钟自适应模块找出HSI时钟的最佳适配参数。
本发明的上述技术方案是通过以下方式实现的:
一种STM32内部HSI时钟自适应串口通讯系统,其特征在于:包括时钟配置模块、分析模块、ARM与NB模组通讯模块、时钟自适应模块、E2PROM以及外设模块。
时钟配置模块使程序初始化,程序初始化值时钟配置模块适配典型值,典型值为在0-32(不包含32)之间取中间值16。典型值保存在E2PROM中。
时钟配置模块读取E2PROM保存的典型值。时钟配置模块利用典型值修订ARM与NB模组通讯模块通讯异常时内部HSI时钟的频率值。
分析模块判断分析所述ARM与NB模组之间进行数据交换,当环境温度产生变化时,HSI时钟生偏移,有可能引起通讯失败。分析模块传输通讯异常信息给ARM与NB模组通讯模块。分析模块传输通讯正常信息给外设模块。
分析模块用于监测ARM与NB模组通讯模块以实现CPU与NB之间的通讯状态。ARM与NB模组通讯模块出现通讯异常调用时钟自适应模块恢复通讯。
时钟自适应模块通过赋值与更新数值找出最佳适合HSI的适配参数,替换典型值,并存入E2PROM中。
E2PROM存储初始化时的典型值,E2PROM存储的最佳适合HSI的适配参数。
外设模块传输通讯正常信息至分析模块。
与现有技术相比,本发明的优点是:
1.通过调用时钟自适应模块的程序,无需增加硬件成本彻底解决了由于温度变化引起的通讯失败问题。
2.频率修正以软件模块形式存在,在通讯发生错误时自动调用,兼容以前产品,不会由于产品更新功能要求产线与用户升级配套软件。
3.为设计单位节约人力工时物料成本。
4.遇到外设接口兼容性小,传统时钟校准方法不能解决的问题,本发明可以解决,具有兼容性大的特点。
5.该发明不单能应用的ARM与NB通讯上,对于所有使用内部晶振的ARM,包括单片机,只要CPU与外设存在类似关系,都能用类似方法得到解决,具有应用范围广的特点。
进一步优化为:时钟自适应模块的校正程序分为以下几步:
时钟自适应模块从0到32轮换赋值给HSI时钟调整赋值变换因子,试探ARM与NB模组通讯模块通讯是否成功。
时钟自适应模块更新起始与末尾变量数值。
时钟自适应模块循环更新轮换变量直至ARM与NB模组通讯模块满足通讯条件。
ARM与NB模组通讯模块若满足通讯条件,时钟自适应模块找出HSI时钟的最佳适配参数,替换典型值,并保存至E2PROM。
采用上述技术方案,通过调用时钟自适应模块的程序,彻底解决了ARM与NB模组通讯模块通讯失败的问题。
进一步优化为:时钟自适应模块通过起始与末尾变量找出HSI时钟的最佳适配参数。
采用上述技术方案,实现时钟自适应模块通过往复不断找出与HSI时钟的频率最接近的值,完成对HSI时钟进行精确配置。
进一步优化为:时钟配置模块将当前的轮换数据0~32之间的值赋值给HSI时钟。分析模块检测ARM与NB模组通讯模块的通讯是否出现错误。时钟自适应模块执行程序。时钟自适应模块找出ARM与NB模组通讯模块出现错误的两个边界参数,计算出最佳参数,保存至E2PROM,以供下次调用。
采用上述技术方案,对程序进行初始化后,通过时钟配置模块读取E2PROM的初始赋值于HSI时钟,由分析模块分析通讯条件是否满足,从而找出接近HSI时钟频率的值。
进一步优化为:最佳参数为两个所述边界参数的平均值。
采用上述技术方案,通过边界参数求平均值而获得与HSI时钟频率最接近的值,达到恢复通讯的目的。
附图说明
图1为实施例的功能模块示意图;
图2实施例的流程示意图;
图3为实施例中初始化和适配参数示意图。
具体实施方式
以下结合附图1、图2以及图3对本发明的技术方案做进一步说明。
一种STM32内部HSI时钟自适应串口通讯系统,如图1所示,包括时钟配置模块、分析模块、ARM与NB模组通讯模块、时钟自适应模块、E2PROM以及外设模块。
如图1、如图2以及图3所示,时钟配置模块使程序初始化,程序初始化值时钟配置模块给HSI时钟适配典型值,典型值为在0-32(不包含32)之间取中间值16。典型值保存在E2PROM中。
时钟配置模块读取E2PROM保存的典型值。时钟配置模块读取E2PROM保存的典型值。时钟配置模块利用典型值修订ARM与NB模组通讯模块通讯异常时内部HSI时钟的频率值。时钟配置模块将从E2PROM读出的A赋值给HSI时钟。分析模块检测ARM与NB模组通讯模块的通讯是否异常。时钟自适应模块执行程序,校正修订ARM与NB模组通讯模块的程序。时钟自适应模块找出ARM与NB模组通讯模块出现错误的两个边界参数,计算出最佳参数,保存至E2PROM,以供下次调用。对程序进行初始化后,通过时钟配置模块读取E2PROM的初始赋值于HSI时钟,由分析模块分析通讯条件是否满足,从而找出接近HSI时钟频率的值。最佳参数为两个所述边界参数的平均值。通过边界参数求平均值而获得与HSI时钟频率最接近的值,达到恢复通讯的目的。
分析模块判断分析ARM与NB模组通讯模块是否通讯异常,形成通讯异常信息或通讯正常信息。分析模块传输通讯异常信息给ARM与NB模组通讯模块。分析模块传输通讯正常信息给外设模块。
ARM与NB模组通讯模块用于实现CPU与NB之间的通讯状态。ARM与NB模组通讯模块出现通讯失败调用时钟自适应模块恢复通讯。
时钟自适应模块通过赋值与更新数值找出最佳适合HSI的适配参数,替换典型值,并存入E2PROM中。时钟自适应模块的校正程序分为以下几步:
时钟自适应模块从0到32轮换赋值给HSI时钟调整赋值变换因子,试探ARM与NB模组通讯模块通讯是否成功。
时钟自适应模块更新起始与末尾变量数值。
时钟自适应模块循环更新轮换变量直至ARM与NB模组通讯模块满足通讯条件。
ARM与NB模组通讯模块若满足通讯条件,时钟自适应模块找出HSI时钟的最佳适配参数,替换典型值,并保存至E2PROM。
通过调用时钟自适应模块的校正程序,彻底解决了ARM与NB模组通讯模块通讯失败的问题。时钟自适应模块通过起始与末尾变量找出HSI时钟的最佳适配参数。实现时钟自适应模块通过往复不断找出与HSI时钟的频率最接近的值,完成对HSI时钟进行精确配置。
E2PROM存储初始化时的典型值,E2PROM存储的最佳适合HSI的适配参数。
外设模块传输分析模块的不满足通讯条件的信息至分析模块。外设模块传输通讯未超时信息至分析模块。
如图2和图3所示,本实施例的具体实施步骤包括以下几个步骤:
1.赋给HSI时钟典型值
电脑板上电,ARM复位,时钟配置模块给HSI时钟赋予典型值16(因为时钟校正补偿范围0-32(不包含32),16是中间值,即典型值)初始化程序。
系统初始化完成后,用上次自适应保存在E2prom里的参数修正HSI时钟。如果上次未保存此参数(即此修正模块从未调用过),则该值为1,将典型值16付给HSI时钟校正参数。
2.执行HSI时钟自适应程序
进入主程序后,ARM与NB模组通讯模块进行通讯,由分析模块检测通讯是否产生ERROR523错误或通讯超时无应答。
3.执行校正程序
调用时钟自适应模块,执行校正程序,时钟配置模块将当前的轮换数据0~32之间的值赋值给HSI时钟。
4.修正HSI时钟
如果发现即运行HSI时钟自适应程序,找出适用于ARM与NB模组通讯模块的最大值与最小值,并取二者平均值作为ARM与NB模组通讯模块通讯的最佳参数值,即HSI时钟的最佳适配参数。获得此时最佳通讯HSI校正参数。
5.保存HSI校正参数
用自适应模块获得的HSI参数配置现有HSI时钟,同时存入E2prom,供下次上电使用。
本发明通过调用时钟自适应模块的程序,无需增加硬件成本彻底解决了由于温度变化引起的通讯失败问题。频率修正以软件模块形式存在,在通讯发生错误时自动调用,兼容以前产品,不会由于产品更新功能要求产线与用户升级配套软件,为设计单位节约人力工时物料成本。遇到外设接口兼容性小,传统时钟校准方法不能解决的问题,本发明可以解决,具有兼容性大的特点。该发明不单能应用的ARM与NB通讯上,对于所有使用内部晶振的ARM,包括单片机,只要CPU与外设存在类似关系,都能用类似方法得到解决,具有应用范围广的特点。
本具体实施例仅仅是对发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的保护范围内都受到专利法的保护。
Claims (4)
1.一种STM32内部HSI时钟自适应串口通讯系统,其特征在于:包括时钟配置模块、分析模块、ARM与NB模组通讯模块、时钟自适应模块、E2PROM以及外设模块;
所述程序初始化时为所述时钟配置模块配置典型值,所述典型值为在0-32(不包含32)之间取中间值16;所述典型值保存在所述E2PROM中;
所述时钟配置模块读取E2PROM保存的所述典型值;所述ARM与NB模组通讯模块通讯异常时,调用时钟适配,修改E2PROM保存的所述典型值;
所述分析模块判断分析所述ARM与NB模组之间进行数据交换,当环境温度产生变化时,HSI时钟生偏移,有可能引起通讯失败,所述分析模块用于所述监测ARM与NB模组通讯模块以实现CPU与NB之间的通讯状态;所述ARM与NB模组通讯模块出现通讯异常调用所述时钟自适应模块恢复通讯;
所述时钟自适应模块通过赋值与更新数值找出最佳适合HSI的适配参数,替换所述典型值,并存入所述E2PROM中;
所述E2PROM存储初始化时所述的典型值,所述E2PROM存储所述的最佳适合HSI的适配参数;
所述外设模块传输通讯正常信息至所述分析模块;
所述时钟自适应模块的校正程序分为以下几步:
所述时钟自适应模块从0-32轮换赋值给所述HSI时钟调整赋值变换因子,试探所述ARM与NB模组通讯模块通讯是否成功;
所述时钟自适应模块更新起始与末尾变量数值;
所述时钟自适应模块循环更新轮换变量直至所述ARM与NB模组通讯模块满足通讯条件;
所述ARM与NB模组通讯模块若满足通讯条件,所述时钟自适应模块找出所述HSI时钟的最佳适配参数,替换所述典型值,并保存至所述E2PROM。
2.根据权利要求1所述的STM32内部HSI时钟自适应串口通讯系统,其特征在于:所述时钟自适应模块通过起始与末尾变量找出所述HSI时钟的最佳适配参数。
3.根据权利要求1所述的STM32内部HSI时钟自适应串口通讯系统,其特征在于:所述时钟配置模块将当前的轮换数据0-32之间的值赋值给所述HSI时钟;
所述分析模块检测所述ARM与NB模组通讯模块的通讯是否出现错误;
所述时钟自适应模块执行程序,校正修订所述ARM与NB模组通讯模块的程序;
所述时钟自适应模块找出所述ARM与NB模组通讯模块出现错误的两个边界参数,计算出最佳参数,保存至所述E2PROM,以供下次调用。
4.根据权利要求3所述的STM32内部HSI时钟自适应串口通讯系统,其特征在于:所述最佳参数为两个所述边界参数的平均值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911385663.9A CN111198594B (zh) | 2019-12-29 | 2019-12-29 | 一种stm32内部hsi时钟自适应串口通讯系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911385663.9A CN111198594B (zh) | 2019-12-29 | 2019-12-29 | 一种stm32内部hsi时钟自适应串口通讯系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111198594A CN111198594A (zh) | 2020-05-26 |
CN111198594B true CN111198594B (zh) | 2023-05-23 |
Family
ID=70746352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911385663.9A Active CN111198594B (zh) | 2019-12-29 | 2019-12-29 | 一种stm32内部hsi时钟自适应串口通讯系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111198594B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116185133B (zh) * | 2023-04-25 | 2023-08-01 | 南京芯驰半导体科技有限公司 | 芯片时钟校准方法、装置、芯片、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396492A (en) * | 1993-04-28 | 1995-03-07 | At&T Corp. | Method and apparatus for adaptive clock recovery |
CN110519356A (zh) * | 2019-08-20 | 2019-11-29 | 杭州先锋电子技术股份有限公司 | 一种校准燃气表上报成功率的方法及装置 |
-
2019
- 2019-12-29 CN CN201911385663.9A patent/CN111198594B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396492A (en) * | 1993-04-28 | 1995-03-07 | At&T Corp. | Method and apparatus for adaptive clock recovery |
CN110519356A (zh) * | 2019-08-20 | 2019-11-29 | 杭州先锋电子技术股份有限公司 | 一种校准燃气表上报成功率的方法及装置 |
Non-Patent Citations (2)
Title |
---|
刘义平 ; 公飞 ; .基于STM32的CAN总线接口设计与实现.信息与电脑(理论版).2016,(08),全文. * |
谢祖通 ; .基于STM32的智能车载路试仪的设计.计算机测量与控制.2013,(08),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111198594A (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101546169B (zh) | 时间校准方法和装置 | |
CN111198594B (zh) | 一种stm32内部hsi时钟自适应串口通讯系统 | |
US20090327782A1 (en) | Device power management using network connections | |
WO2002086751A1 (en) | Alerte standard format memory loading and handling | |
CN111314018B (zh) | 波特率自适应调节处理系统及方法、信息数据处理终端 | |
US8549277B2 (en) | Server system including diplexer | |
EP3073336B1 (en) | Process control system | |
CN108223414B (zh) | 一种风机控制方法、装置、存储介质及空调 | |
CN115658408A (zh) | 传感器状态检测方法、装置及可读存储介质 | |
CN107656751A (zh) | 用户程序升级方法及装置 | |
CN104678922B (zh) | 基于物联网的定时控制方法和系统 | |
EP2671156B1 (en) | Diagnostic information logging | |
CN104657292A (zh) | 一种硬件驱动和操作系统分离方法及装置 | |
CN110784408A (zh) | 路由器控制方法 | |
CA3044578C (en) | Selection and use of different wireless networks by meter reading devices | |
US11360841B2 (en) | Method for monitoring an IOT device and using it as battery protection watchdog for IOT devices | |
CN102638903A (zh) | 一种基于无线传感器的工业振动监测系统 | |
EP3974991A2 (en) | Communications device control with active/passive service processing boards and a common tx and rx logic | |
Cisco | System Error Messages Software Release 9.21 | |
EP3349398A1 (en) | Method for monitoring an iot device and using it as battery protection watchdog for iot devices | |
CN112540641A (zh) | 一种时钟精度修正方法、装置及存储介质 | |
US20210165690A1 (en) | System and Method for Efficient Execution and Monitoring of Machine-to-Machine Device Management Tasks | |
CN112666819B (zh) | 一种用于智慧照明系统的时钟保障方法及系统 | |
CN107920347A (zh) | 一种终端设备的数据处理方法及系统、设备 | |
JP2019205125A (ja) | 異常要因判定装置、制御システム、および異常要因判定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |