Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PC/104 help!
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
Gvaler
Не можем разобраться c компьютером, собранном на платах PC/104, а именно:
1) Как получить доступ к последовательным портам на интерфейсных платах в ОС MS-DOS 7.1?
2) Вообще, какую операционку следует установить?
3) Не доступны одновременно Disc-On-Chip на процессорной плате и Flash-накопитель (отдельная плата).
Кто-нибудь сталкивался с чем-то подобным?

В конструкцию входят:
Процессорный модуль CMI6486DX100HR-32 (http://www.rtd.com/PC104/CM/486/CMi6486-100.htm),
Модуль с поддержкой CompactFlash CMT6118HR (http://www.rtd.com/PC104/UM/storage/CMT6118.htm),
8-канальная плата последовательных интерфейсов CM17320HR - 2шт (http://www.rtd.com/PC104/UM/network/CM17320HR.htm).
tuborg
Цитата(Gvaler @ Apr 7 2009, 20:52) *
Не можем разобраться c компьютером, собранном на платах PC/104, а именно:
1) Как получить доступ к последовательным портам на интерфейсных платах в ОС MS-DOS 7.1?

Через порты ввода/вывода. В Си под дос для этого есть функции inportb() и outportb(). Либо ассемблерные команды in, out.

Цитата
2) Вообще, какую операционку следует установить?

Зависит от ваших целей. DOS, linux, QNX, Windows CE...

Цитата
3) Не доступны одновременно Disc-On-Chip на процессорной плате и Flash-накопитель (отдельная плата).
Кто-нибудь сталкивался с чем-то подобным?

Это надо смотреть за какие ресурсы они дерутся. IRQ, DMA, BASEADDRESS
sysel
Цитата
1) Как получить доступ к последовательным портам на интерфейсных платах в ОС MS-DOS 7.1?

Какие именно последовательные порты интеесуют? Те что на материнской плате CMi6486DX100HR или те что на плате CM17320HR ?
Если те, что на материнской плате - полазайте в CMOS Setup (BIOS). Под msdos 7.1 до них можно достучаться либо через сервис BIOS (прерывание Int 14h), либо напрямую через порты ввода-вывода. Эти порты с точки зрения программирования ни чем не будут отличаться от COM-портов ПК. Также для проверки можно вывести в COM1 файл из командной строки ДОС: "copy file1.txt aux" (aux - имя файла ДОС, ассоциированного с последовательным портом, по умолчанию настроен как 9600bps 8n1).
Если интересуют порты на плате CM17320HR - у вас горе и облом. На этой плате в качестве контроллера стоит Эксаровский чип XR17D158, у которого PCI-шина с одной стороны и 8 уартов с другой. Этот чип не работает на шине ISA, а Ваша материнская плата поддерживает только ISA шину (пусть и в конструтиве PC-104). Тут у Вас промашка вышла при выборе железа (на плате CM17320HR разъём PC/104 установлен только для возможности дальнейшего наращивания стека). Тут есть 2 варианта: искать материнскую плату с поддержкой PCI-104 (я бы посоветовал ETM-LX800 от Avalue, она дешевле, да и процессор быстрее, или же что-то на базе Vortex86SX или Vortex86DX), или искать плату ISA(PC/104) - 8UART.
Цитата
2) Вообще, какую операционку следует установить?

Для начала нужно знать какие задачи будут выполняться устройством.
Цитата
3) Не доступны одновременно Disc-On-Chip на процессорной плате и Flash-накопитель (отдельная плата).
Кто-нибудь сталкивался с чем-то подобным?

Шарьте в CMOS Setup и дергайте CMT6118HR за джамперы

Интересно, почему выбрана именно такая(CMi6486DX100HR) материнская плата?
Устаревший процессор, скудная переферия, очень высокая цена.
Интересовались другими платами на базе VIA, AMD Geode, Vortex86 ?

Советую посетить ExpoElectronica 2009 (13-16 апреля, Москва, Крокус экспо). В прошлом году очень много чего можно было увидеть и пощупать по встраеваемым компьютерам, пощупать Windows CE.
Gvaler
sysel,
Облом - это не есть хорошо... Тем не менее, спасибо.
Да, необходим доступ именно к портам на дополнительных интерфейсных платах (2 * 8 портов). Если я правильно понимаю, то чтобы использовать порты, их нужно инициализировать. А значит нужно знать адреса. В BIOSе есть настройки адресов двух "штатных" портов, расположенных на процессорном модуле. А как быть с портами на других модулях, как узнать их адреса? Как вообще BIOS узнает (и узнает ли), что к шине подключены другие интерфейсные модули?
Материнская плата с устаревшим процессором выбрана с целью уменьшения энергопотребления и тепловыделения (это критично), да и назначение не предусматривает большой потребности в вычислительной мощности - прием данных с тех самых последовательных портов и запись этих данных на CompactFlash.
sysel
Всё нижеописанное будет относиться к конфигурации, в которой CM17320HR подключен к процессорной плате по шине PCI (PCI-104) (т.е. не к Вашей материнской плате).
Цитата
Если я правильно понимаю, то чтобы использовать порты, их нужно инициализировать. А значит нужно знать адреса. В BIOSе есть настройки адресов двух "штатных" портов, расположенных на процессорном модуле. А как быть с портами на других модулях, как узнать их адреса? Как вообще BIOS узнает (и узнает ли), что к шине подключены другие интерфейсные модули?

Для шины ISA (PC/104) читайте книгу М.Гук "Аппаратные средства IBM PC"
Для шины PCI (PCI-104): до загрузки ОС, BIOS иницирует циклы чтения конфигурационного пространства устройств, находящихся на шине. Из этого конфигурационного пространства BIOS узнаёт: код производителя устройства, код самого устройства, класс этого устройства (видеоадаптер/сетевая карта/ и т.д.), запрашиваемые устройством ресурсы (размер области памяти, которая будет выделена устройству, размер области портов ввода-вывода). Далее BIOS даёт устройствам, исходя из их потребностей, базовые адреса в пространстве памяти и в пространстве ввода-вывода, и соответственно резервирует участки памяти и портов ввода-вывода за устройствами).

Т.о. к моменту начала загрузки ОС, все устройства, висящие на PCI-шине получат свои базовые адреса и регионы в памяти и пространстве ввода-вывода.
Есть сервис BIOS (int 1Ah), который позволяет отыскать нужное Вам устройство на шине, выявить его базовые адреса и другую полезную информацию.

Для работы с CM17320HR есть 2 подхода (если всё-таки в DOS собрались работать):
1. Установить драйвер устройства, поставляемый производителем. В этом случае дальнейшая работа будет сведена к вызову функций этого драйвера. К драйверу должны, по идее, идти документация и примеры работы.

2. Через сервис BIOS (int 1Ah) выловить устройство CM17320HR, выяснить его базовые адреса, скачать даташит на микросхему XR17D158. Выяснить как с ней работать через её внутренние управляющие регистры. В прикладной программе работать через эти регистры.

Если пойдёте по второму пути - книга В.Кулаков "Программирование на аппаратном уровне" Вам в помощь!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.