经过三组RC网络相移之后的电压波动

一、问题的提出

有了前面的结论,可以知道电容电压跟随交流电源电压的关系,是满足下面的方程的:

\(V_{C}(t)=\frac{V_{m}}{\sqrt{1+(\omega RC)^2}} \times e^{\frac{-t}{RC}} + \frac{V_{m}}{\sqrt{1+(\omega RC)^2}} \times sin(\omega t-arctan(\omega RC))\)

1、这个方程中的 Vm / [(1+(wRC)^2)^(1/2)] 可以被视为A,这个A就是电容电压波形中的峰值。也就是说:在电源正弦的作用下,电容上的电压形成了一个新的正弦波(虽然并不是完整的正弦、起始瞬态略有畸变),这个新形成的“正弦波”的波峰是A;

2、方程中的-arctan(wRC)被视为相移角φ,也就是电容正弦错后于电源正弦的相移;

3、那么新的正弦波的频率呢?频率是不变的。它的频率是和电源频率相同的,只是波峰略低、相位略微向右偏移。

有了如上概念之后,就可以完成以下的两个问题的解答:

1、如何构建一个完美的60°相移,然后通过3组RC相移,完成180°的相移;

2、在进行了180°相移之后的第三组RC网络的输出电压,波峰是多大?也就是说最终反馈回控制极的电压有多少?

这篇博客,将完成上面2个问题的计算和整理。

二、为了实现60°的单组RC相移,重新进行相关元件的参数设置

电源电压峰值:12V。之所以要将电源电压定义为12V,目的是与Jack Kilby的实验相符。在我阅读的相关书籍中提到,他在实验室中用12V直流电开始实验,并在示波器上看到了令人激动的振荡波型;

电源频率:暂定100Hz。之所以要定义成100Hz,是为了方便绘图观察。后期可以重新调整这个频率;

电容:1uF,也就是0.000001F;

电阻:之前我在仿真中是直接使用的1000Ω,现在按照相移角为60°进行计算,电阻应该使用2760Ω。这里还有一个额外的问题:为什么之前仿真中,电容使用1kΩ也可以正常振荡呢?这个问题需要以后有时间了,再深入推敲一下;

如上的基本参数就定义好了,按照上面定义的参数,进行绘图,然后进行仿真,看绘图计算结果与仿真结果是否一致。

三、三组RC相移之后的最终波形及电压

其实有了上面的计算依据之后,不画图也可以计算出经过3次RC相移之后的最终输出电压峰值是多大了。因为经过一组RC之后的电压峰值是A,所以经过3组RC之后的电压峰值是A的三次方。因而,如果电源电压的峰值时12V,那么:

经过第一组RC之后的电压将会是6V左右;第二组RC之后的电压将是3V;第三组之后的电压将是1.5V。也就是说最终反馈回控制极的电压的波动将在+1.5V ~ -1.5V之间。

下面是使用SageMath完成的画图,从只有电源电压开始、一条条的增加新的电容电压曲线。需要注意的是要忽略掉曲线开始瞬态部分的失真情况:

这个开始部分的失真真令人苦恼!要知道我之所以花了很多时间《搞清楚电容电压跟随电源电压的数学公式和推导过程》,目的就是想在最终的SageMath生成准确正确的图像。而现在看来还是无法生成出正确的图像来。

很奇怪各类仿真软件在这里是怎么做的,为什么通过仿真软件的示波器,就能够看到正确的波形图呢?

四、仿真对比

待续

五、备忘

1、本文中使用到的LaTex公式,为了方便日后使用,源码备注如下:

V_{C}(t)=
\frac{V_{m}}{\sqrt{1+(\omega RC)^2}}
 \times
 e^{\frac{-t}{RC}}
+
\frac{V_{m}}{\sqrt{1+(\omega RC)^2}}
 \times
sin(\omega t-arctan(\omega RC))

2、本文中使用到的SageMath绘图语句,整理如下,方便日后使用:

Vm = 12
R = 2760
C = 0.000001
F = 100
omega = 2*pi*F

Vs(t) = Vm*sin(omega*t)
A = Vm / sqrt(1+(omega*R*C)^2)
Vc1(t) = A * exp(-t/(R*C)) + A * sin(omega*t-arctan(omega*R*C))

B = A /  sqrt(1+(omega*R*C)^2)
Vc2(t) = B * exp(-t/(R*C)) + B * sin(omega*t-arctan(omega*R*C)*2)

CC = B /  sqrt(1+(omega*R*C)^2)
Vc3(t) =  CC * exp(-t/(R*C)) + CC * sin(omega*t-arctan(omega*R*C)*3)
plot(Vs, 0, 0.03, color='black')
+ plot(Vc1, 0, 0.03, color='red')
+ plot(Vc2, 0, 0.03, color='green')
+ plot(Vc3, 0, 0.03, color='blue')

六、拾遗

1、此时此刻(2024年4月19日 16:07),这篇博客才写了一半,发现我在数学计算中用到的相移角似乎有些错误,而且数学计算时的模型和实际电路模型也存在着偏差,所以得到的SageMath结果和仿真结果并不一致。但是二者从数值上看是有相似性和吻合性的,所以应该只是一些小的偏差、错误导致的问题。再假以时日,应该能将相关错误找到,并得出正确的结果。

电容电压跟随电源电压的过程(2)

一、问题的提出

在上一篇博客《电容电压跟随电源电压的过程》中,基本搞清楚了电容的充电过程和放电过程电压的变化规律。但是它对我想了解的电路而言太基础了,根本无法指导我对当前电路的分析。

我更想搞清楚的是当电源为交流电时,电容电压的跟随情况,如下图所示:

图中的电源是100Hz的5V交流电,可以看到在电容上形成的电压的峰值(红线)略微低于5V,并且是滞后于电源电压的。这在网上已经有不少公式说明了它们之间的关系,但是却没有给出推导过程。

并且更为令我不安的,是这些现成的公式都是指电路进入“稳态”之后,而在上电的起始阶段,可以看出电容与电源之间的电压并不出现相位差。

所以在我想来,这个“现成的公式”是无法解答我的困惑的,所以这篇文章以及接下来的一段日子,我将尽可能搞清这个问题:电容电压是如何跟随交流电压的。

二、困扰

又陷入了“AI胡说”的困扰,这篇博客提出来的问题,我自认为问题定义的还是比较清晰的,但却找不到准确的文献。如果继续执着于利用搜索引擎或AI问答引擎,恐怕接下来要浪费的时间将是巨大的。

其实我觉得这个问题应该比较容易,它只是在解如下的方程:

\(\sum V(t) = U_{S}(t) + U_{C}(t) + U_{R}(t) = 0\)

这似乎没什么难度,但因为缺少相关的参考资料,所以我很难确定自己的推导过程每一步是否准确。尤其又因为我自己解出的答案,绘制成图形之后和预期的图形相差太远——因而可以确定我的求解是错误的。

有些不知该如何继续了。

三、找到了正确的计算公式、虽然并不完美

经过多次的搜索、查找,终于找到了一篇“正确的”参考资料:

https://www.iitp.ac.in/~siva/2016/ee101/Sinusoidal_Steady_State_Analysis.pdf

之所以可以认为这篇参考资料是正确的,是因为基于这篇资料计算电容电压,绘制出来的电容电压的波形是准确的(相移角准确、电容可以得到的最大电压准确、并且是稳定持续输出的):

这很不容易!我之前一个下午都在使用AI问答引擎找答案,结果给出来的各个计算公式都不正确。直到晚饭之后,都已经准备放弃了。但不甘心又找了一下,才找到上面这篇文档。

虽然这个文档给出的结论并不是我要的最终结论——它显然缺少系统上电的起始阶段的分析和曲线。但至少有了稳态之后的正确公式,可以先把后面的知识了解、掌握一下。

四、瞬态响应阶段和稳态阶段的完美波形

我感觉自己是找到“宝”了,上面的参考文档实际上是准确、完美的。只不过起初找到的时候没有细看,草草的照葫芦画瓢画了个初步的图形。细看之下,这篇文档实际上是含有初始瞬态响应阶段的分析的。按照最终的正确公式进行绘图,得到的图形正确、完美:

文档中给出来的推导公式也非常的简要明了。所以接下来只需要将文档中提及的公式好好学习、自行推导一遍,这一目的功课就应该算是完成了。

五、小节

1、其实上面的图形我完全可以在仿真软件里模拟出来,然后直接截屏就可以正常使用了。但是之所以纠结这个图形的产生过程,是因为我想搞清楚仿真软件中这个“电容电压跟随电源电压”的计算过程,究竟是怎样的;

2、如果不知道具体计算过程、不知道具体的推导过程,就很难理解为什么最终是RC的阻值、容值决定了它的相移。也无法自己利用SageMath绘制图形。不能自己绘制图形,就很难在博客文章或者“视频文章”中给出更详细的展现;

3、如今已经有了这个具体的“绘图公式”,我就可以按照自己之前的想法,绘制一系列的曲线,通过这些曲线说明为什么每一个RC网络可以实现(0°-90°)之间的相移、为什么必须需要至少3组RC网络才能形成180°的相移;

4、额外的,除了可以说明三组RC网络形成的180°相移外,还可以计算出最终反馈回去的电压有多少,与控制极的初始电压叠加之后形成的控制极电压波动有多大、进而推算出控制极的电流形成的开关效应,最终将Jack Kilby的RC Phase Shift Oscillator解释清楚了。

电容电压跟随电源电压的过程

一、问题的提出:

一颗有电且“满电”的电池,它的正极有着比负极更高的电势。

当将这颗“满电电池”的正负极通过导线连通时,通过电场力的作用,这条通路上的电子便会从低电势区域向高电势区域移动,目的是减小正负极之间的电势差,从而形成电子持续的定向移动,也就是电流。

因为这条导线是理想的、电池也是理想没有内阻的,所以电子的定向移动不会受到任何的阻碍,单位时间内通过导线横截面的电子数量可以无限多、电流无限大,只需近乎于0秒的时间,电池正负极的电势差就被拉成零、没有了电势差。

重新回到初始状态,在这条理想导线上加入一颗电阻,目的是阻碍电流的移动,使得导线上的电流不再是无限大,而是I=U/R,问:此种状态下,需要经过多少时间,电池的正负极电势差才能从U降低到0呢?

二、初步讨论

上面的问题中,一直用的是“电池”,目的是让问题更感性一些。其实这篇文章主要聊的是电容,因为电池和电容基本相似、可以类比,所以上面一直用“电池”来做表述。但电池和电容本质上是有差异的,所以为了更加严谨一些,下面不再使用“电池”的称呼,而是用“电容”来继续讨论。

一旦系统接通,电池(电容)将开始进行放电,电流经过电阻做工,并且逐渐的电容内部的电压会降低、直至电容电压降低到0。这也是上面提出来的问题:要经过多久的时间,电容电压才会从初始电压(例如5V),降低到0V呢?这里有一个值得注意的事情:电容初始电压虽然是5V、在系统导通的起始时刻,流经电阻(100Ω)的电流是I=5V/100Ω=50mA,但是这个电流并非恒定不变的。

随着时间的推移,电容内部的电场强度(如果是电池、则可以理解成电量)会越来越低、电容的端电压也会随之下降,从而导致流经电阻的电流也会越来越小。这个过程是连续的——每一个当前时刻的电流都是上一个时刻的电容电压决定的。在没有仔细的推敲之前,不妨先随手胡乱的画一画它们随时间t的变化关系:

如上的若干图形都是肆意画出来的,只有大概的猜测、并没有任何的理论依据。大方向上而言,电容电压随时间的推移一定是越来越低的,但究竟是上面图中哪一种形式呢?如果花更多一些时间思考,似乎能从“电能密度”的角度上猜测出,上面的3个曲线中,最右边的曲线似乎是更贴近于真实情况的。但也只是猜测。

另外,我们最关心的“经过了多长时间,电容电压变为0”,在上面的图形中也是无法推敲出来的。虽然我们知道这个时间一定非常小,所以图中都是“拍着脑袋决定”,在0.01s的时候,电容电压就已经降低到0V了,但实际情况究竟应该是怎样一个时刻?所以接下来就要从数学的角度具体推算一下了。

三、具体数学推导

电容放电过程中的电压变化,可以从两个维度上考虑,分别是KVL和KCL两个角度,也就是考虑电容上的电压时时刻刻等于电阻上的电压、或电容上流出的电流时时刻刻等于电阻上流过的电流。这两种思考角度本质上是一样的,具体的推到过程由下面的两个参考资料中可以详尽的看明白:

1、以电压考虑,依据Kirchhoff’s voltage law (KVL)进行推导:

参考资料:https://web.mit.edu/sahughes/www/8.022/lec09.pdf

2、以电流考虑,依据Kirchhoff’s current law (KCL)进行推导:

参考资料:https://mechatrofice.com/circuits/charging-capacitor-derivation

3、额外的,一篇不错的科普概述文章:

参考资料:https://courses.lumenlearning.com/suny-physics/chapter/21-6-dc-circuits-containing-resistors-and-capacitors/

这里直接给出最终的结论,电容上的电压随时间T的关系式是:

\(V_{C}(t) = V_{0} \times e^{-\frac{t}{RC}}\)

由此看出电容电压在数学上是永远不会等于0的,它只会越来越趋近于0。但是现实世界中,因为电路上的IC并非理想的、并且存在着热扰动,所以只要经过一段时间,电容趋近于0的电压就会因为一个“小的波动”而抵达X轴,从而时电压归零。

四、后记

1、写此篇博客的目的和智能问答AI:

写这篇博客目的是熟悉一下各个辅助工具(例如SageMath、LaTex、LTspice等)的使用方法,以便后面的博客写作更加熟练。

借助于当下流行的人工AI问答工具,节省了大量的搜索和推算时间。人工AI问答工具是把“双刃剑”,它的回答正确时的确可以方便的找到答案,主要是在不会提问的时候,可以通过几次提问,令自己逐渐找到提问的方式、方向,并且让自己知道应该问什么词语。

但是对于AI给出的答案,则是“五花八门”,甚至于有些时候它就是信口开河,可谓是一本正经的胡说八道。明明是错误的推导,也被AI说的有模有样,十分迷惑人。这个时候就是最浪费时间的,思路被它带偏不说,还会花大量的时间以为是自己的问题。

2、电容的充放电过程:

本文暂且指整理出了电容的放电过程,对于充电并没有讨论。但是只要对放电过程的数学公式有了清晰的了解,充电过程也就可以容易的理解并掌握了。

3、直流电压下电容电压的跟随:

本文讨论的是电容自己做为“电源”对外放电。但实际上我更关心的是系统内有一个直流电源,而电容视为“被充电”元件时,电容的电压表现。所以虽然说过程相反、原理相似,也容易理解,但还是要再花时间另开一篇博客学习、整理。

4、交流电压下电容电压的跟随:

之所以要完成“在直流电压下电容的充电过程”的学习,是因为我最终的目的是学习、掌握当电源是“正弦交流电”时,电容的电压同电源电压的跟随情形。所以这里也是一个知识点的欠缺。并且现在感觉,这个问题将会更加复杂一些,尤其是在数学推导上,也许存在着更高深的数学知识,需要从基础学起。

5、最终目的:

只有在完成了上面提到的电容电压随交流电源跟随的情况,会计算、会画图之后。才能将RC Phase Oscillator振荡器中,为什么会有3组RC相移网络的事情搞清楚、说明白,所以这篇文章实际上只是之前学习Jack Kilby的RC相移振荡器的基础中的基础。

RC振荡电路初学笔记(3)

这是一篇临时的备忘文章,主要是将最近几天对RC振荡器的学习进展做一个简单的罗列。虽然已经花了不少时间在这个电路上,但是我对这个电路的细节还有很多的欠缺。好在最令我困惑的几个问题,已经基本搞清楚了:

1、在这个振荡电路中,使用相移器的目的是什么?

答:这个问题我现在“隐约”有了答案,但是还需要对当前的认知进行更深入的学习,以便从数学公式上对相关的“相移量”有个更加准确的认识、并且要能通过参数计算出具体的结果。尤其是我现在所初步感受到的“电容电压跟随源电压”,它的跟随程度和如何控制,要学会具体的计算过程;

2、为什么要使用3组RC相移网络?

答:这个问题现在我已经可以通过画图的方法得出答案了。这个问题的答案的得来对我而言十分的不易:自己既没有夯实的基础知识、网络上又没有比较明确的答案。幸好最后自己想出了答案。虽然暂时没有办法印证我当前的答案是否标准、正确,但感觉应该基本是靠谱的。为了让答案更容易理解,这个知识点要配合一些画图才能完成。所以接下来将学习使用SageMath将相关的正弦波形绘制出来;

3、电容的容抗的本质是什么?

答:还没有搞清楚;

4、NPN为什么是电流控制型元件?

答:这个问题似乎也有了一个初步的答案。不过也还没有将答案从头梳理、逐一印证。所以还需要一定的时间完成这部分知识的整理、证实。并且在确定自己的想法就是书本上表述的意思之后,整理成博客文章,发在这个系列文集之中。

5、我当前绘制的RC相移振荡器电路,起振阶段的工作原理是怎样的?

答:不确定,不了解。因为我现在使用的2款仿真软件对于起振阶段的仿真并不相同,所以也说不清哪一个软件的起振阶段描述是准确的。因为无法确定哪一个表现准确,也就无法去“打哪儿指哪儿”的想它的起振过程。所以这个起振阶段的起振过程,还要再花时间推敲;

6、我当前绘制的RC相移振荡器电路,是否真实、准确?

答:这是相比Jack Kilby的论文而言的。他的论文中对于RC相移部分使用了一个很简略的画法。现在不确定他的简略画法是:a、一坨电容覆盖在一坨电阻上面,就是与3组RC网络等效的;b、其实简略画法要展开成3组RC网络才可以;c、在他的真实电路实现内部,还有其它未知的细节;以上哪种情况呢?

以上,就是现在我对RC相移振荡器的学习进展。如此看来,已经学习过的内容还没有整理成文章、大体了解了的内容还没有深入探究、尚未了解的内容还有很多……如此看来,这个系列的学习工作,还是有很多事情要继续的。

重新学习有关电阻和电容的基础知识

最近看RC相移振荡器的时候,发现自己欠缺的基础知识有些多,所以不得不重新学习有关电阻和电容的基础知识。

要想了解关于电容的基础知识,我想应该从最基本的电流、电压、电阻方面的知识学起。而这三个基本概念分别是安培、伏特和欧姆三位先生所定义出来的,所以这三个基本的单位使用了三位先生的名字作为定义。

于是就有了:

1、电流:单位是“安培”(Ampere),这是在1836年时为了纪念在电磁学方面有突出贡献的法国科学家安德烈·马里·安培,而以他的名字命名的(虽然是1836年正式命名,但是电流的定义应该早于1800年、早于电压的定义时间)。电流的定义是I=Q/t,含义为在导体内单位时间内所移动的电荷量。

2、电压:单位是“伏特”(Volta),这个概念是亚历山德罗·伏特(Alessandro Volta)在1800年提出的。它的定义是:U=W/Q,即单位电量做出的功。如果电量Q做出的功是n焦耳,说明这些电量Q的电势能降低了、从而释放出了n焦耳的能量。这些Q之所以电势能降低、释放出能量,是因为它们从处于高势能的电场区域移动到了低势能的电场区域。

3、电阻:单位是“欧姆”

RC振荡电路初学笔记(2)

上一篇Blog最后提及的Jack Kilby设计制造的人类历史上第一片集成电路芯片,是一枚RC相移振荡器(RC Phase shift oscillator),在输入12V的直流电时,可以产生特定频率的波形输出信号,具体的输出频率和幅值是通过其中的RC相移器设置产生的。

这枚人类历史上的第一枚集成电路芯片,诞生于1958年9月12日的德州仪器实验室中。它之所以与众不同、并且成为今天计算机发展历史上的重要一环,原因在于它是第一枚完全使用半导体工艺、在单晶片上集合集成了电阻、电容、PNP管的电路、也就是我们常说的“集成电路”。

在当时的德州仪器,已经可以规模化生产电阻器、电容器、PNP等电子元件,但是电阻和电容并不是通过半导体工艺生产的,所以要想将这些不同的IC小型化、集成化的“封装”在一起,则需要针对不同的IC进行不同的工艺制作,以便让每一个IC都缩小、让不同的IC彼此靠的更加紧密,从而使最终整体封装出来的电路尽可能小型化、高集成化。

这种令每一个元件都更小、令他们彼此考得更近的“小型化”想法,是比较朴素的想法,德州仪器也是在这种朴素的想法的指引下,设计了多种方案(可能是三种设计方案),但是这些方案本质上都是先将每一个IC缩小、再进行整体组装,如此就不可避免地还是会令最终的产品是一个“组装设备”,相对而言还是会比较大。

图中,Jack Kilby坐在正中间。图片来源:https://commons.wikimedia.org/wiki/File:TIDallasPhippsWeaverBiardKilbyFischer.png

Jack Kilby则采用了与上面想法不同的思路:他直接使用半导体生产工艺进行电阻、电容的制造,具体是使用氮化钛制作电阻、使用聚四氟乙烯制造电容,这样就可以令电路中所有用到的IC都是采用相同的半导体制造机制来生产,也就是说最终的所有IC都是“生长”在多片硅晶体上的,不再需要进行彼此的组装,而是一层层“生长、叠放”在一起,从而大幅度的缩小了最终电路的尺寸。

Jack Kilby的想法在实验室中最终得以实现,并且成功的在示波器上看到了预期的振荡输出波形。

最终,Jack Kilby被称为“集成电路之父”并于2000年时因发明集成电路而荣获了诺贝尔物理学奖。与Jack Kilby齐名的是来自于仙童半导体的罗伯特·诺伊斯,他则因集成电路平面制作工艺的发明,所以他们两人被同时誉为“集成电路之父”。

RC振荡电路初学笔记(1)

振荡电路(Oscillator Circuit)是用于产生特定频率和振幅的正弦波形或非正弦波形的电路。整句话有些拗口,简单来说:震荡电路就是可以产生正弦波形的电路。

它需要由三个电路功能单元共同构成:振荡器、放大器、反馈器。

比较简单(元件构成简单且容易手工搭建实现)的是RC相移振荡电路,即RC Phase Shift Oscillator Circuit。例如以下电路,仅需使用电阻和电容,在9V的直流电压源驱动下,便可以产生固定频率的振荡输出(正弦波输出):

上图是网上比较常见的RC Phase Shift Oscillator电路,之所以要先依据网上的电路图模拟一下,目的是看看这个电路的基本电路构成和输出波形。

我之所以对RC振荡电路感兴趣,是因为最近看《半导体史话》,其中提到Jack Kilby设计制作的人类世界上第一块集成电路。他的发明所刊发的论文是 US3138743A,在其中提到了使用集成电路半导体生产工艺制作的几个电路图。在这篇论文所提及的几个应用电路中,最简单、最具代表性的便是RC振荡器。

但是这份发明专利看上去有一些吃力,主要是其中的电路图并不是我熟悉的绘制方法,它对相关电路的画法如下:

经过几天的尝试,我大概画出了它的电路图。这个RC振荡电路和今天比较成熟的振荡电路有一些差异,例如和本文上面所画不同,在Jack Kilby的论文中使用的是PNP放大器、而网络上找到的电路图多是使用NPN做为放大器,或者在今天更多的则是使用MOS管、或直接使用放大器作为核心放大部分。

不过具体使用什么核心器件进行放大,本质上都是相似的。我想只要对其中一个细致深入的学习明白,其他的相似电路也就能够较快掌握了。所以接下来,我将对这个电路进行更详细的研究、学习。

UP4000焊接USB Type-B端子接口备忘

最近工作中用到了一台UP4000的小电脑,要从这台单板电脑(SBC)的主板上引出一个USB接口,与其他外部设备连接。

在UP4000的主板上,是有这个扩展设计的,它的CN15接口就是USB/UART扩展,这个CN15接口共有10个接线端子,其中可以引出2路USB总线。我使用的就是其中一路,也就是只使用这个接口的pin1-pin4引脚就可以了。

USB端子使用的是Type-B公口端子,线序定义网上也很容易找到。按理说从CN15到Type-B只有4条线,且这4条线的定义明确,应该很容易就搞定。但是我先后做过2批次的手动焊接,每一次都要再重新逐一核对这些线序的对应关系。想着也许今后还要再做这个工作,到时候可能又会忘记,还要再逐一核对,实在是太麻烦了。

所以干脆把这个工作做成图文,备忘一下吧。

最终的成品如下图所示,为了展示方便,所以Type-B端子那边没有用热缩管包裹。真正制作的时候是需要用热缩管对4条线的焊脚部分整体包裹、固定一下的:

UP4000单板电脑的CN15接口线序定义如下:

USB各个段子的线序定义:

最后再将焊接的示意图备忘一下。这张图右下角的手绘部分,其实更好的应该用手绘板,但是我实在犯懒、懒得起身,所以就直接用鼠标哆哆嗦嗦的画一下,估计自己今后看到的时候还能知道他们的对应关系(实际上恐怕很难,以我的经验而言,这种信手随便做的备忘,过不了多久自己再看的时候,就会忘记都是什么意思了。也许今后再做这个焊接工作的时候,我还是会再次重新回忆那边是Pin1、然后还要逐一核对这4条线是否正确)。

WordPress发布文章失败问题与解决

昨天完成博客系统的升级之后,我顺便利用CloudFlare提供的免费服务为当前网站开通了通过https协议进行访问的功能。

但是后来发现WordPress出现了一些问题——在发布文章或者修改文章更新时,会提示:Updating failed. You are probably offline。经过尝试发现:只要使用https访问这个网站就会遇到问题,如果使用http进行访问,WordPress的后台功能一切正常。

搜索了一下,遇到这个问题的人还不少,总结来看就是网站支持ssl之后出现的问题。

因为起初使用CloudFlare我为了少做一些工作,只开通了他的边缘证书,而没有在自己的网站服务器上部署本地证书,从而导致WordPress后台功能出现问题。

这个问题不管它其实也可以,只要注意一些:撰写、更新文章等进行后台操作的时候使用http访问就可以避免。但是我想还是从根本上解决一下比较好,所以今天在CloudFlare中同时开通边缘证书、制作源服务器证书并在本地完成部署。

在部署本地CA证书的时候还遇到了额外的一些小问题,简单来说就是我对SSL和相关的证书制作、部署并不了解,网上看到的大多数文章写的也是乱七八糟,使得整个证书的部署过程废了一些周折。虽然最终部署妥当,但其中的细节我了解的还是一个稀里糊涂,如果以后有时间和精力,这块知识点还是应该再好好熟悉一下才是。

现在这个网站已经是真真正正的端到端加密的访问方式了。

Blog升级到了最新版本

这个Blog很久没有更新过了,使用的WordPress也一直停留在5.1.12未曾更新,今天下定决心将它升级一下。

升级的想法我已经动过很多次,但每每想起来,就觉得麻烦。原因是这台服务器上的PHP还是5.6版本,因为WordPress的新版已经需要至少PHP7.1才能安装,所以不得不从基础环境入手,我一直觉得那可能会是非常繁重的工作。

不升级吧心里总是惦记着,升级呢又担心麻烦。今天我终于鼓起勇气,决定大刀阔斧地进行一下升级工作。结果却发现整个过程远比想象的简单,很快就都搞定了。

首先服务器的系统,重新安装了一遍。没有使用自己常用的Ubuntu,而是改用AWS推荐的Amazon Linux。我想既然是跑在AWS上的服务,用他自家的系统应该更好一些吧?而且接下来公司的一些项目可能要用到AWS的服务,提前了解一下Amazon Linux也许是必要的。

其余的LAMP模块都还是中规中矩,直接用包管理器一键安装,很快就都搞定了。

最后将老Blog部署上去,并将WordPress的最新版下载、解压、覆盖、升级,便完成了所有的工作。

以上全部,连40分钟都没到就全都完成了。早知道这么容易,早就该升级才是。

上面的WordPress升级完成之后,我想不如趁热打铁,将另外一个拖欠了很久的工作一并做了吧:给当前的博客增加支持HTTPS访问。

以前要想个人拥有一套SSL证书,是比较难的,主要是因为这个证书资源太贵了,最便宜的一年恐怕也要几百元。如果脱离证书颁发机构自己直接发行一张证书、又完全没有意义——浏览器会提示这个证书并非公信机构发行,这个警告提示一旦显示出来,会让人觉得网站是不是被黑了、效果反而更差。

如今SSL证书的获取相对就比较容易了,有一些机构为了扶持个人网站的发展,提供了免费的证书。例如cloudflare,我就用这个公司对当前博客的域名进行了托管,并且使用他提供的免费证书完成了当前网站对https访问的支持。

不过因为WordPress似乎对https访问的支持存在着一些小的问题,所以这块的工作进展并不是十分顺利,虽然现在磕磕绊绊的算是可以正常访问,但感觉其中还是或多或少存在着一些问题,只待再有时间、再完善吧。