На заре персональных компьютеров использование одного или двух (или более) последовательных портов RS-232 в качестве универсальных адаптеров ввода-вывода было обычной практикой. В последнее время этот «винтажный» стандарт был в значительной степени вытеснен (в конце концов, ему уже 64 года) более быстрыми и экономичными технологиями последовательных интерфейсов, такими как USB, I2C, SPI.
Тем не менее, оборудование RS-232 по-прежнему широко доступно и недорого, а его биполярные уровни сигналов остаются устойчивыми к помехам и влиянию длины кабеля. Еще одна полезная особенность – биполярные напряжения питания (обычно ±6 В), вырабатываемые типичными адаптерами RS-232. К ним можно удобно подсоединяться через стандартные выходные сигналы RS-232 (например, RTS и TxD) и использовать для питания подключенных аналоговых и цифровых схем.
В этой статье именно это и сделано с использованием асинхронного RS-232 для питания и подсчета импульсов от простого 10-килогерцового преобразователя напряжение-частота (ПНЧ). Получение только одного бита информации из каждой 10-битной символьной последовательности может показаться неэффективным (потому что так оно и есть), но в данном случае это удобная уловка для добавления простого аналогового входа, который можно расположить в удалении от компьютера, не опасаясь наводки помех.
Смотрите Рисунок 1, на котором показано объединение RS-232 и ПНЧ.
Рисунок 1. | 10-килогерцовый ПНЧ работает с обычным портом RS-232 и питается от него. |
Бóльшая часть ядра схемы на Рисунке 1 была ранее описана в статье «Схема инвертора напряжения трансформируется в ПНЧ с быстродействием 1 МГц» [1].
Единственное различие между старой схемой и этой, помимо снижения максимальной частоты в 100 раз, заключается в использовании для коммутатора U1 КМОП микросхемы с металлическим затвором (CD4053B) вместо кремниевого (HC4053). Это изменение стало необходимым из-за более высокого используемого здесь рабочего напряжения (12 В против 5 В). Остальные элементы конструкции остались (примерно) такими же.
Входной ток, равный отношению VIN/R1, заряжает конденсатор C3, что заставляет транскондуктивный усилитель Q1, Q2 принимать ток, увеличивая ток конденсатора C1 генератора на триггера Шмитта. Это увеличивает частоту FPUMP генератора U1c и ток IPUMP зарядового насоса U1a, U1b и C2. Поскольку ток насоса имеет отрицательную полярность, он замыкает цепь обратной связи, которая постоянно уравновешивает ток насоса и выравнивает его с входным током:
Обратите внимание, что сопротивление R1 можно подобрать для реализации практически любого желаемого масштаба шкалы VIN.
Диод D3 обеспечивает импульс сброса пилообразного напряжения, который инициирует начало каждого цикла генератора, а также устанавливает длительность стартового импульса RS-232 (ST), равным примерно 10 мкс, как показано на Рисунке 2. Обратите внимание, что такое сочетание постоянных времени и скорости передачи данных в бодах дает запас по допустимому отклонению частоты примерно в 11%.
Рисунок 2. | Каждому импульсу ПНЧ соответствует правильно отформатированный, но пустой символ RS-232. |
Соотношение сопротивлений R5/R3 выбрано таким образом, чтобы сбалансировать коллекторные токи транзисторов Q2/Q1, когда напряжение VIN и частота FPUMP равны нулю, тем самым минимизируя смещение нуля VIN. Поэтому ошибки линейности и смещения нуля составляют менее 1% от полной шкалы.
Однако это оставляет открытой возможность недопустимой ошибки масштабного коэффициента, если только шина питания логики +6 В не будет точной, что очень маловероятно. Если нам нужно точное опорное напряжение, не зависящее от нестабильности шины +6 В, то вполне подойдет недорогой 5-вольтовый ИОН на элементах U2, C5 и R7.
Однако, если задача состоит в преобразовании логометрического сигнала, пропорционального +6 В, скажем, от резистивного датчика (например, термистора), то ИОН U2 и окружающие его компоненты должны быть исключены, вывод 2 микросхемы U1 подключен к –6 В, а емкость конденсатора C2 уменьшена до 1.6 нФ. Тогда: