Перегляд одного допису
Старий 09.04.2016, 11:25  
Igor1031
Super Moderator
 
Аватар для Igor1031
 
Реєстрація: 25.12.2009
Дописи: 2.560

Типово

Бортовий комп’ютер на мікроконтролері PIC



Через деякий час після покупки автомобіля Lanos з’явилося бажання встановити бортовий комп’ютер (БК). Дешевий варіант не сподобався, а в дорожчих "кусалась" ціна. Так як був деякий запас радіодеталей і бажання щось робити, то виникла ідея зробити БК самостійно. Перевага самостійної розробки очевидна — в роботу БК можна задати тільки ті функції, які необхідно. Достатньо, щоб БК показував миттєвий розхід палива (для економної їзди), вів підрахунок спожитого палива і здійснював діагностику.

Перед розробкою БК відбулась тривала підготовча робота: вияснення типу діагностичного протоколу, згідно з яким працює блок керування двигуном (БКД) автомобіля, вивчення цього протоколу, написання пробної програми і перевірка її працездатності. Коротко розглянемо підсумки зробленої роботи. В придбаному автомобілі Lanos встановлений блок керування двигуном Gionix MZ1.1. На форумах, присвячених автодіагностиці, було вияснено, що із цим блоком працює програма KWP_D версії 1.03 по протоколу БКД МИКАС 10.3. Там же знайдено опис як протоколу БКД МИКАС 10.3 так і методики вивчення діагностичного протоколу. Після цього було написано тестову програму, працездатність якої було перевірено віртуально у середовищі Proteus. Підключення до автомобіля відбувалось через придбаний k-line адаптер і компонент COMPIM середовища Proteus. В подальшому ця програма стала основою прошивки мікроконтролера майбутнього БК.

Як правило БК підключають через діагностичний роз’єм автомобіля до блоку керування двигуном. По своїй суті БК являє собою мікропроцесорний блок і працює як автотестер: БК подає запити у БКД у вигляді певного цифрового коду (в блоці Lanosа використаний протокол KWP2000, описаний у серії стандартів ISO 14230), розшифровує отриману відповідь, здійснює необхідні підрахунки і виводить інформацію на екран. Розгляд цього протоколу є темою окремої статті, у цій статті при розгляді роботи схеми він буде розглянутий спрощено. При достатній зацікавленості матеріалом з боку читачів буде написано окрему статтю про діагностичний протокол МИКАС 10.3.

Розроблений БК дозволяє виводити на екран: частоту обертів колінвала, швидкість автомобіля, розхід палива в часі, розхід палива за 100 км, температуру двигуна, температуру повітря на вході у впускний колектор, положення дросельної заслінки, положення регулятора холостого ходу, час вприскування, кут випередження запалювання, бортову напругу, розрідження у ресівері, записані БКД коди помилок, пройдений шлях, кількість спожитого палива, час у дорозі. У БК передбачена звукова сигналізація, яка спрацьовує при виявленні помилок під час роботи двигуна.

Основою БК є мікроконтролер U1 типу PIC16F886, який керує усіма вузлами бортового комп’ютера і виконує необхідні обчислення. Мікросхема DD1 типу L9637 є драйвером інтерфейсу ISO 9141 і використовується власне для під’єднання до БКД через k лінію. Мікросхема U2 типу 7805 — стабілізатор 5 В. Транзистори VT1 і Q1 — електронний ключ ввімкнення живлення схеми при включенні запалювання. Транзистор VT2 є підсилювачем зумера BF1. Транзистори VT3 і VT4 є ключами керування підсвітки і живлення дисплею. В бортовому комп’ютері використаний рідкокристалічний дисплей RC1602 (на схемі не показаний), який підключають до роз’ємів XP1 і XP2. Перемичка XP3 використана для вибору підключення резистора R4 до або після ключа Q1 (робочий варіант 1 і 2 контакти замкнені). Планувалось через роз’єм XP4 підключати зовнішню EEPROM, але у кінцевому варіанті це не було реалізовано. Через контакти 1, 4, 5 роз’єма X1 бортовий комп’ютер підключається до діагностичного роз’єма автомобіля (лінії "+12 В", "корпус", "k-line"). Через контакт 2 "запалювання" до відповідного провідника (лінія автомобіля "15") після ключа запалювання. Керування БК відбувається кнопками SB1 — SB4. Вид відображуваної інформації на екрані вибирають кнопкою SB2 "Режим+". Відображення кодів помилок БКД або настройок БК вмикається за допомогою кнопки SB1 "Помилки/опції". Кнопка SB3 "Сигнал вмк/вимк" вмикає/вимикає звуковий сигнал при виявленні несправності БКД (дублюється зміна відповідної опції). Кнопка SB4 "Старт/стоп" вмикає/вимикає роботу БК. Кнопка SB7 призначена для скиду мікроконтролера і рідкокристалічного дисплею. Світлодіоди HG1 — HG4 призначені для підсвітки кнопок. Світлодіод HG5 використовувався для тестування роботи БК (навність елементів R11 і HG5 не є обов’язковим і при повторенні конструкції БК можуть бути вилучені із схеми). При нормальній роботі світлодіод HG5 періодично спалахує на короткі проміжки часу. Якщо взаємодія між БК і БКД порушується, то світлодіод HG5 горить тривалий час. Контрастність символів на рідкокристалічному індикаторі залежить від резисторів R3 і R13. При використанні рідкокристалічного індикатора іншого типу, ніж використаного автором, номінали цих резисторів можуть відрізнятись.


Робота схеми полягає у наступному:
Після увімкнення запалювання автомобіля відкривається ключ Q1, напруга живлення +12 В з нього подається на мікросхему U2 і світлодіоди HG1 — HG4. Стабілізована напруга +5 В відповідно живить мікросхеми U1, DD1 і рідкокристалічне табло. Через деякий час після ввімкнення запалювання мікроконтролер подає запит початку сесії із БКД. Після позитивної відповіді на запит початку сесії мікроконтролер починає подавати запити параметрів БКД. Відповіді на ці запити містять інформацію про стан і режими роботи двигуна, яка аналізується мікроконтролером. При натисненні кнопки SB1 подається запит кодів помилок, які записані у БКД. При натисненні кнопки SB4 подається запит завершення сесії при вимкненні і початку сесії при увімкненні роботи БК. Мікроконтролер БК веде статистику про кількість спожитого палива, пройдений шлях і сумарний час у дорозі. Для зберігання цих даних при вимкненому живленні використовується вбудована EEPROM мікроконтролера. Коли вмикається живлення мікроконтролера, дані зчитуються з EEPROM, а коли вимикається, дані записуються у EEPROM. Контроль вимкнення запалювання здійснюється по напрузі на виводі 21 мікроконтролера. При вимкненні запалювання автомобіля напруга на виводі 21 зменшується до нуля, цю зміну напруги мікроконтролер використовує як сигнал для запису даних у EEPROM. Необхідний запас енергії для живлення мікроконтролера під час запису даних у EEPROM забезпечується конденсатором C1.

Конструкція бортового комп’ютера розроблялась віртуально з використанням 3-d моделювання. Друкована плата була розрблена в середовищі Proteus, а 3-d модель БК в середовищі Компас (на рисунку показаний один із варіантів).






Джерело та программа контролера ht*p://cxemu.te.ua/cxemu/programators/464-bort_komp.html
Igor1031 зараз поза форумом   Відповісти з цитуванням