Здравствуйте, хочу сделать интернет-радио в машину.
Берем любой покупной 3G-модем (наверное нужен с драйверами под Linux), подключаю его к своему устройству через USB.
Декодируем mp3 или aac поток интернет-радио внутри контроллера или аппаратным декодером (надо определиться в каком случае будет лучшее соотношение цена/сложность).
Дальше декодированный поток или с АЦП или с аппаратного декодера поступает на ФМ-передатчик.
Наверное без Линухи не обойтись. Посоветуйте с чего начать.
Наверное надо для начала подружить Линуху с 3Г-модемом. Никто ничего подобного не делал? Можно ли использовать драйвера в комплекте с модема для Линухи устанавленной на базе ARM7.
В АРМ-х я новичок. Так что сразу извиняюсь за возможно глупые вопросы.
я не спрашиваю - зачем ваще такое извращение нужно. имхо, достаточно любого автодевайса с поддержкой mp3 и на ближайшие годы можно забыть о проблеме музыки в машине..
разбейте проект на части:
- подсистема питания и управление ею - в авто достаточно "грязное" питание с кучей помех и сделать надежный БП задача не тривиальная
- по 3Г - смотрите содержимое драйверов ядра и интернет на предмет возможных кандидатур модемов 3Г - без поддержки драйверами это будут выброшенные деньги
- посчитайте возможную нагрузку на АРМ с учетом пропускной его USB 1.1, цифры при декодирование mp3 тут приводились
- в теории можно такую систему сделать и без линукса - но узким местом будет поддержка USB и софт для декодирования mp3, ну и разумеется ГУИ при поддержке экрана и кнопок
Не считаю такой девайс изврашением. Я например, в машине хочу слушать помимо музыки еще и актуальную информацию, что-то новое, ту же музыку которую сам бы никогда не скачал.
По выбору 3г-модему, вы имеете ввиду что надо искать модем у которого есть драйвера под линукс? Насколько их просто перенести на линукс на базе ARM?
Если делать без линукс, то как общаться по USB с модемом? Какой протокол обмена? Она разве стандартный, где можно посмотреть?
Хочется сделать без ЖК, информацию планируют транслировали по rds
не представляю, что сейчас нельзя найти и скачать? пойму трудности 10-15 летней давности. тогда действительно музыки было очень мало и таскать модемом напряжно..
не касался, но полагаю, что если драйвера под линукс есть, то "переносить" врядли что потребуется. Работа ведь через USB и ничего низкоуровневого адаптировать не придется. Разве что тайминги подпилить у USB хоста (но это клиника)
это смотрите спецификацию на конкретную модель. там должен быть описан протокол - либо последовательный порт через USB, либо Ethernet через USB
без линукса (стандалоне) вы пишите поддержку нужной периферии, поднимаете USB Host на АРМе, общаетесь с модемом, разбираете его выходной поток, который отправляете или в аппаратный декодер mp3 или в программный декодер. В первом случае выход декодера сразу на вход FM-передатчика, во втором - сначала поднимаете звуковую подсистему на АРМе, ставите внешний кодек звука, выход которого на передатчик..
угу, а переключением канала станции (потоком с 3Г) кто будет заниматься?
зы дабы не вводить в заблуждение - я 3G не занимался..
Все USB модемы (по крайней мере я не встречал других) поддерживают http://en.wikipedia.org/wiki/USB_communications_device_class
драйвер для них один - идентификаторы только разные. Если есть драйвер для USB HOST для этого ARM - в Linux будут работать. Я пробовал штук пять разных ZTE и Huawei от мегафона-мтс и какой-то от скайлинка.
Как уже было сказано, переносить что-либо необходимости нет. Ванильное ядро сейчас поддерживает тонну различных 3g-модемов. Есть гораздо более интересный вопрос. Как себя будет вести 3g-соединение при постоянном передвижении? Возьми обычный ноутбук с 3g-модемом и покатайся по городу. Посмотри как оно в плане "заиканий". Ибо зона покрытия явно не является однородной. Может в таком состоянии оно будет просто не нужно.
Подтыкаю к плате SK-AT91SAM9XE512-S3E (установлен штатный Linux 2.6.28) 3G-модем HUAWEI E1550 через COM валится (устройство находится в режиме только модем AT^U2DIAG=0):
usb 1-1: new full speed USB device using at91_ohci and address 2
usb 1-1: configuration #1 chosen from 1 choice
usb-storage: probe of 1-1:1.0 failed with error -5
usb-storage: probe of 1-1:1.1 failed with error -5
usb-storage: probe of 1-1:1.2 failed with error -5
Если модем в в режиме модем + CD-ROM + Card Reader, то:
usb 1-1: new full speed USB device using at91_ohci and address 4
usb 1-1: configuration #1 chosen from 1 choice
scsi5 : SCSI emulation for USB Mass Storage devices
scsi6 : SCSI emulation for USB Mass Storage devices
scsi 5:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
scsi 6:0:0:0: Direct-Access HUAWEI MMC Storage 2.31 PQ: 0 ANSI: 2
sd 6:0:0:0: [sda] Attached SCSI removable disk
Я так понимаю в Linux нет драйверов для 3G-модема, а есть драйвера для USB-накопителей.
В настройках ядра ставлю built-it (*) напротив USB Modem (CDC ACM) support
Пересобираю через builroot-2010.02, заливаю через U-boot.
Подсоединяю 3G-модем, тоже самое:
usb 1-1: new full speed USB device using at91_ohci and address 3
usb 1-1: configuration #1 chosen from 1 choice
usb-storage: probe of 1-1:1.0 failed with error -5
usb-storage: probe of 1-1:1.1 failed with error -5
usb-storage: probe of 1-1:1.2 failed with error -5
Включите поддержку usbserial в ядре
Device Drivers ---> USB support ---> USB Serial Converter support ---> USB Generic Serial Driver, USB driver for GSM and CDMA modems
Включил поддержку:
USB Generic Serial Driver
USB IPWireless (3G UMTS TDD) Drive
USB Modem (CDC ACM) support
(USB driver for GSM and CDMA modems НЕТ в моих настройках ядра)
У меня плата SK-AT91SAM9XE512-S3E, версия ядра 2.6.28.
Использую модем HUAWEI E1550, пробовал и другой.
Под VMware пробовал его подключать - всё нормально. Создаются файлы устройств /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
На плате ни в /dev ни в /mnt ничего не появляется.
Вот лог:
Bytes transferred = 4376279 (42c6d7 hex)
## Booting image at 20400000 ...
Image Name: Linux Kernel Image
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 4376215 Bytes = 4.2 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Welcome to SK-AT91SAM9XXXXX-S3E development board!
SK-AT91SAM9 login: usb 1-1: USB disconnect, address 2
usb 1-1: new full speed USB device using at91_ohci and address 3
usb 1-1: configuration #1 chosen from 1 choice